当我们编译并运行下面的C程序段时会发生什么?
null
#include "stdio.h" int main() { int a = 10; int b = 15; printf ( "=%d" ,(a+1),(b=a+2)); printf ( " %d=" ,b); return 0; } |
(A) =11 15= (B) =11 12= (C) 由于第一个printf()中的(b=a+2),编译器出现错误。 (D) 没有编译错误,但输出为=11 X=其中X取决于编译器实现。 答复: (B) 说明: 根据C标准C11,printf()的所有参数都会被计算,无论它们是否被打印。这就是为什么(b=a+2)也会被计算,并且在第一次printf()之后,b的值会是12。这就是为什么正确答案是B。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END