哥斯拉不说话 发表于 2015-4-11 10:25:32

C语言a++问题

为什么会打印出9呢?#include <stdio.h>
main()
{
      int a = 011;
      printf("%d", a ++);
}

小人 发表于 2015-4-11 10:58:36

好像是 进制问题0 开头好像是八进制    ,你看看对不{:5_106:}

小人 发表于 2015-4-11 10:59:47

你把011 前面的0去了就是十进制了

ANDES 发表于 2015-4-11 11:21:39

011 是八进制,换算成十进制就等于9。
a++是先运算再加1,所以得到的结果还是a没加1之前的值9(可以在后面再打印出a的值,就可以明显的观察到结果了)。
如果是++a的话,就先进行加1再运算,那么打印出来的的值就是9+1=10。

哥斯拉不说话 发表于 2015-4-11 18:14:12

小人 发表于 2015-4-11 10:58
好像是 进制问题0 开头好像是八进制    ,你看看对不

对啊

哥斯拉不说话 发表于 2015-4-11 18:14:43

小人 发表于 2015-4-11 10:59
你把011 前面的0去了就是十进制了

对啊

哥斯拉不说话 发表于 2015-4-11 18:15:19

ANDES 发表于 2015-4-11 11:21
011 是八进制,换算成十进制就等于9。
a++是先运算再加1,所以得到的结果还是a没加1之前的值9(可以在后面 ...

厉害{:9_232:}

ANDES 发表于 2015-4-13 09:12:47

哥斯拉不说话 发表于 2015-4-11 18:15
厉害

{:5_91:}
页: [1]
查看完整版本: C语言a++问题