关于C的一个小问题.

[复制链接]
查看11 | 回复5 | 2009-2-3 21:02:17 | 显示全部楼层 |阅读模式
如果i=3
i+++++i=多少呢
为什么

回复

使用道具 举报

千问 | 2009-2-3 21:02:17 | 显示全部楼层
(i++)+(++i)=8i++是先赋值再加一; ++i是先加一再赋值; 但是程序是自右向左执行,所以先++i等于4;(此时i已经等于4)然后i++还等于4;所以最后得8...
回复

使用道具 举报

千问 | 2009-2-3 21:02:17 | 显示全部楼层
i+++++i //这样有错误 i++ + ++i = 8 i+++ + +i = 6 i+ ++ ++i = 10 i++ + ++i = 8 (i++) + (++i); 初始i=3 i++ = 3; 但此时 i=4; 所以 ++i = 5 3+5 = 8 i+ ++ ++i = 10 i+ ++ ++i = ...
回复

使用道具 举报

千问 | 2009-2-3 21:02:17 | 显示全部楼层
C编译系统在处理这类问题时尽可能多地(从左向右)将若干字符组成一个运算符 (i++)+(++i)...
回复

使用道具 举报

千问 | 2009-2-3 21:02:17 | 显示全部楼层
编译出错i+++++i会被理解为:i+ ++ ++i,由于中间的++没有有效左值,所以会出错...
回复

使用道具 举报

千问 | 2009-2-3 21:02:17 | 显示全部楼层
error C2105: '++' needs l-value...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行