C |指针基础|问题12

考虑这个C代码来交换两个整数和这五个语句之后:

null

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:可能不适用于所有输入,因为可能会发生算术溢出

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享