printf的输出顺序和n++,++n的顺序逻辑问题
我实在是不明白这其中的规律。请大佬们帮我瞧一哈!int a=10;
printf("%d %d %d %d\n",a++,a,++a,a++);
打印结果是:12 13 13 10
int a=10;
printf("%d %d %d",++a,a,a++);
打印结果是12 12 10
完全找不到规律{:5_107:}
++a 就是先给a加1,然后传给printf,匹配上%d
a++ 就是先传给printf,然后给a加1,匹配上%d xiaosi4081 发表于 2021-7-21 18:50
++a 就是先给a加1,然后传给printf,匹配上%d
a++ 就是先传给printf,然后给a加1,匹配上%d
以第一个例子讨论,假设从左往右的4个a分别是1,2,3,4号,++运算符优先级高于逗号运算符,如果printf函数是从右往左输出的顺序,那按理来说,4号a是10, 3号a不应该是12吗,1号a应该是12, 2号a最后输出是13。 酱油王 发表于 2021-7-21 19:00
以第一个例子讨论,假设从左往右的4个a分别是1,2,3,4号,++运算符优先级高于逗号运算符,如果printf函数 ...
突然发现:
https://blog.csdn.net/musiccow/article/details/5944251 每个编译器都不一样呀 没什么意义这样写
主要是要理解前后缀的区别。
我的结果是10 11 12 12 是从左到右顺序
页:
[1]