- 这个程序虽然输入函数是scanf("%d",&n); 可是输出的时候就可以输出一大串。
#include<stdio.h> int main() { int n = 0; while(scanf("%d",&n)!=EOF) printf("%d ",n); return 0; }
测试的结果:
尽管数值超过了 int 的范围,也可以显示出来。
2.这个程序,如果人工分析99%会和最后的结果不一样。
#include <stdio.h>
int main(){
int i = 0;
int a[] = {10,20,30};
int r = 1 * a[i++] + 2 * a[i++] + 3 * a[i++];
printf("%d\n", r);
return 0;
}
这个是我在
http://blog.jobbole.com/53211/ 看到的,说第二个程序是标准未定义的行为,所得到的结果完全取决于编译器。看来好的代码规范还是很重要的。