考虑一下此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)
说明: S2:如果指针px或py处的值恒定或px或py指向无效的内存位置,则可能会产生分段错误
S4:可能不适用于所有输入,因为可能会发生算术溢出
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。