作者PanYX (Panpeter)
看板C_and_CPP
标题[问题] C语言简单习题求解
时间Sat May 21 23:22:09 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
问题(Question):
a++ 的意义是先执行整个叙述後再将a的值加一 (--是减一
++a 的定义先把a加一後,在执行整个叙述 (同上
那为甚麽第八行的执行结果会是9?
预期的正确结果(Expected Output):
a=9
a=9
请按任意键继续....
程式码(Code):(请善用置底文网页, 记得排版)
1 /*hw5_1a,运算式练习(一)*/
2 #include<stdio.h>
3 #include<stdlib.h>
4 int main(void)
5 {
6 int a = 8;
7 printf("a=%d\n", ++a);
8 printf("a=%d\n", a--);
9
10 system("pause");
11 return 0;
12 }
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.14.67.39
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1463844132.A.83C.html
1F:→ longlongint: a++再看一次 05/21 23:26
2F:→ PanYX: 是把a--换成a++吗? 刚刚试一下还是9 05/21 23:34
3F:推 TWkobe: 你再打一个printf("a=%d\n", a); 05/21 23:35
4F:→ TWkobe: 後缀--的副作用要到下一行你才看得到 05/21 23:36
5F:→ bibo9901: 我怎麽觉得你"定义"写反了? 05/21 23:36
※ 编辑: PanYX (101.14.67.39), 05/21/2016 23:45:35
6F:推 bben900911: 做完再做+-,那当然+-後的结果该行看不到阿? 05/21 23:46
7F:→ bben900911: 你尝试在7~8 8~95之间直接检查a。再研究看看 05/21 23:47
8F:→ bben900911: 8~9* 05/21 23:47
9F:→ PanYX: t大是写在哪一行呢? 谢b大 改正了 05/21 23:48
10F:→ PanYX: b大我试试 05/21 23:49
11F:推 TWkobe: 你在printf("a=%d\n", a--);後面加上去就知道为什麽了 05/21 23:49
12F:→ PanYX: 感恩各位解答 所以答案是a=9 a=8 这样吗? 05/21 23:57
13F:推 TWkobe: 你在第七行的时候印出9此时的a也是9 第八行时先印出9 05/22 00:01
14F:→ TWkobe: 印完9後副作用此时a才变成8 所以你在印一次a就会是8 05/22 00:02
15F:→ PanYX: 呜呜 这个题目怎麽有点在弄新手阿 哈哈 还是我太浅 05/22 00:03
16F:推 noodleT: operator 可以看作一个带有返回值的函式,8,9两行都会先 05/22 00:31
17F:→ noodleT: 执行 ++,只差在返回值不同 05/22 00:31
18F:→ noodleT: a++ 是先执行 a++ 喔,不是先做 printf ,只是 a++ 返回 05/22 00:34
19F:→ noodleT: 的是旧值而已 05/22 00:34
21F:推 art1: 回传值 05/22 02:25
22F:→ MOONRAKER: 一点都没有弄到好吗 现在人怎麽那麽容易被弄 05/22 12:09
23F:→ MOONRAKER: 没事就假设全世界人都要弄他 超棒DER 05/22 12:10
24F:→ MOONRAKER: 都知道自己是新手 跟自己想的不一样就要学起来懂吗 05/22 12:11
25F:→ MOONRAKER: 想不通就觉得别人[弄]你 那不要学阿 就不会被[弄]了啊 05/22 12:11
26F:→ Caesar08: 实际上就是你太浅而已... 05/22 12:28
27F:→ PanYX: moon大 开个小玩笑 别太认真 我也後面说我太浅啦 05/22 13:18
28F:→ bibo9901: 不知道当初设计 ++/-- 是不是为了对应asm的 INC/DEC ? 05/22 14:16
29F:→ PanYX: 我会吸取教训 改进自己的!! 05/22 14:17
30F:→ bibo9901: 以今日的角度看是满搞人的没错 05/22 14:17
31F:→ bibo9901: 至於那种跪在神像前批评别人不跪的 别理他没关系 05/22 14:24
32F:→ Schottky: @bibo9901 可以说是对应,但 INC 可没有先加後加的问题 05/22 14:43
33F:→ PanYX: b大 谢谢 了解了 05/22 14:47