C语言中标准输出格式
void main(){
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}
void main()
{
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}这两段代码输出结果为什么不一样?特别的第一段代码怎么理解,求大神指教,不胜感激!
这个和编译器有关, 你用反汇编功能看下汇编代码,对比下两段代码就很清楚了。 小甲鱼老师视频有教哈:lol: txt888 发表于 2014-6-3 09:50 static/image/common/back.gif
这个和编译器有关, 你用反汇编功能看下汇编代码,对比下两段代码就很清楚了。 小甲鱼老师视频有教哈
第一段代码还是不是很理解,求解释。该怎么正确理解才能和运行结果一样? 第一段程序的计算顺序:首先是从右向左计算:)其二,后缀运算符全是先输出再加或减,前缀是先加减再输出,",++i,--i,i++,i--,-i++,-i--);
所以,从右向左i++,i--,-i++,-i--);这几个输出就是8,8,-8,-8,然后到,--i,是先减所以是7,然后到",++i是先加,由刚才的7加1又得到又是8,所以最终结果是: 8, 7,8 ,8 -8 ,-8 , 恩恩!不同的编译器结果是不一样的,建议你反汇编看一下,这样的话,就清楚了! 答案 建议看看
printf是右结合的 {:1_1:}
页:
[1]