一个C语言问题 void main() {int i.j; i=8,j=10; printf("%d%d%d%d",i.j,++i,j++); } 结果是多少 最重
作者&投稿:冶俊 (若有异议请与网页底部的电邮联系)
void main(){ int i,j,m,n;i=8;j=10;m=i++;n=j++;printf("%d,%d,%d,%d",i,j,m,n); 求输出结果?~
结果是
9 11 9 10
GCC编译的规则是,printf()从右往左解析。
8,10,9,10
8,10,9,10 注意寄存器变量的问题。
没加头文件,加上
#include 就OK 了
#include
void main()
{
int i,j,m,n;i=8;j=10;m=i++;n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
i=8,j=10;
printf("%d,%d,%d,%d",i,j,++i,j++);
}
这个一般编译器是从右往左计算,并且后++不起作用。
这种方法很有危险,实际应用中应避免这种写法。现在的教育制度就是这样,非得研究那些没有实际意义的牛角尖问题…… 却不多花点时间学习有用的……
结果是
9 11 9 10
GCC编译的规则是,printf()从右往左解析。
8,10,9,10
8,10,9,10 注意寄存器变量的问题。