一个关于C语言的的初级问题,为什么执行下面的代码我最后得到的是-60?

[复制链接]
查看11 | 回复3 | 2012-9-10 22:05:38 | 显示全部楼层 |阅读模式
int a=3,b=3,c; c = ++a+b++; printf("%d\n",&c); 因为有'&'(取地址)符号,所以printf将输出c的地址. 如果没有'&'符号int a=3,b=3,c; c = ++a+b++; printf("%d\n",c);printf将输出7。c = ++a + b++;,
++a,++是前缀,所以值先加1后运算,所以a = 4,
b++,++是后缀,所以先运算后值才加1,所以b = 3, 终上所述c = 4 +3 = 7...
回复

使用道具 举报

千问 | 2012-9-10 22:05:38 | 显示全部楼层
你输出的是c的地址
将&c 改为 cc=++a+b++;
等效于 c=(++a)+(b++);结果是 c=7...
回复

使用道具 举报

千问 | 2012-9-10 22:05:38 | 显示全部楼层
应该是printf("%d\n",c);...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行