考虑这个 C 代码来交换两个整数和它后面的五个语句:
void swap(int *px, int *py)
{
*px = *px - *py;
*py = *px + *py;
*px = *py - *px;
}
S1:会产生编译错误
S2:可能会在运行时根据传递的参数生成分段错误
S3:正确实现所有输入指针的交换过程,这些指针指向存储在进程可访问的内存位置中的整数
S4:为一些但不是所有的有效输入指针正确实现交换过程
S5:可以加减整数和指针。
(一) S1
(B) S2 和 S3
(C) S2 和 S4
(D) S2 和 S5答案: (C)
说明:同 https://www.geeksforgeeks.org/c-pointers-question-14/
这个问题的测验