C语言 ++ -- 问题
C语言问题: int a=5; printf(“%d \n”, a++ + a--); 结果为啥是12 a=5 本应该a--的优先级高啊
[解决办法]
编译器不同结果可能出现偏差
[解决办法]
dev c++上是10。。。
[解决办法]
int i = 10;004113DE C7 45 F8 0A 00 00 00 mov dword ptr [i],0Ah printf("%d", i+++i--);004113E5 8B 45 F8 mov eax,dword ptr [i] 004113E8 03 45 F8 add eax,dword ptr [i] 004113EB 89 85 30 FF FF FF mov dword ptr [ebp-0D0h],eax 004113F1 8B 4D F8 mov ecx,dword ptr [i] 004113F4 83 E9 01 sub ecx,1 004113F7 89 4D F8 mov dword ptr [i],ecx 004113FA 8B 55 F8 mov edx,dword ptr [i] 004113FD 83 C2 01 add edx,1 00411400 89 55 F8 mov dword ptr [i],edx 00411403 8B F4 mov esi,esp 00411405 8B 85 30 FF FF FF mov eax,dword ptr [ebp-0D0h] 0041140B 50 push eax 0041140C 68 3C 57 41 00 push offset string "%d" (41573Ch) 00411411 FF 15 D0 82 41 00 call dword ptr [__imp__printf (4182D0h)] 00411417 83 C4 08 add esp,8 0041141A 3B F4 cmp esi,esp 0041141C E8 2E FD FF FF call @ILT+330(__RTC_CheckEsp) (41114Fh)
[解决办法]
如果完全按优先级来 应该是10 但是 编译器不同 结果会不同
如果写代码 请不要写这样以来编译器的
[解决办法]
int main(void){ int a=5; printf("%d \n", a++ + a--);}
[解决办法]
运行了下这个就更纠结了(我用的是gcc):
printf ("%d,%d\n", --c, --c);
输出的居然是3,3(3,4或4,3我都能接受输出3,3实在是不知道编辑器是怎么在搞的了)
楼主的题目是不是打错了和在7楼上的不同
[解决办法]
先代入哪个a,这个跟优先级,左右顺序无关。
[解决办法]
未定义行为~~
http://topic.csdn.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?57871
[解决办法]
很想知道出现a++ + a--这样代码的几率是多大
[解决办法]
不要去纠结这样的东西了,编译器不一样,导致的结果也不一样,
再说了不赞成写成这样的代码
[解决办法]
-- ++ 的太折磨人,写点大家都一致的代码