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