关于++ ,-- ?在变量前面与后面的区别?

Alice905747457 2011-11-07 09:38:18
现在在自学C++,可是看书的时候有很多问点?现在就有点搞不太懂,请问你们谁能详细的解释下,
谢谢亲们。
唉,好烦,学习编程为什么这么难呢。
谁能帮帮我啊。
...全文
1123 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
shongzhaoyang 2011-11-08
  • 打赏
  • 举报
回复
++在前,先++再计算。在后,先计算再++
petershijin 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 suizouwuya 的回复:]
引用 3 楼 sryan 的回复:

++在前和在后都是表达式 理解好表达式的值就行了
++在前 表达式的值是原值+1 并且返回自身的引用 可以当左值
++在后,表达式的值是原值,返回的是一个临时的变量,不能当左值

3楼说的就可以结贴了吧
[/Quote]
严重同意此答案。
qwer_boo 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keiy 的回复:]

计算顺序不同,EX:
a=i++; //a=i;i=i+1; 先赋值,后++
a=++i; //i=i+1; a=i; 先++,后赋值
[/Quote]++
追求执着 2011-11-08
  • 打赏
  • 举报
回复
漫漫来,冰冻三尺非一日之寒!
一叶之舟 2011-11-08
  • 打赏
  • 举报
回复
a=i++; //a=i;i=i+1; 先赋值,后++
a=++i; //i=i+1; a=i; 先++,后赋值
apn172 2011-11-07
  • 打赏
  • 举报
回复
在前面参与运算之前先计算,在后面参与运算之后再计算
suizouwuya 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sryan 的回复:]

++在前和在后都是表达式 理解好表达式的值就行了
++在前 表达式的值是原值+1 并且返回自身的引用 可以当左值
++在后,表达式的值是原值,返回的是一个临时的变量,不能当左值
[/Quote]
3楼说的就可以结贴了吧
fiveznh 2011-11-07
  • 打赏
  • 举报
回复
++,--前置的话,变量直接自增自减后直接使用,
如果是后置的话,同样是先运算,但暂不使用,却临时申请内存存储这个变量,效率自然没有前置的好了
cai0538 2011-11-07
  • 打赏
  • 举报
回复
好好看书,多多动手!
认识视界 2011-11-07
  • 打赏
  • 举报
回复
放在前边是先加后执行其他命令,放在后边是先执行其他命令再植执行加法
自由 2011-11-07
  • 打赏
  • 举报
回复
++运算符其实也是一个函数,任何类也都可以重载这个操作符
前置的形式是:
const int& operator++(int& a);
return 加后的值
后置的形式是:
const int operator++(int& a, int);
return 加前的值

代码只用作示意
zzcmx2008 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sryan 的回复:]
++在前和在后都是表达式 理解好表达式的值就行了
++在前 表达式的值是原值+1 并且返回自身的引用 可以当左值
++在后,表达式的值是原值,返回的是一个临时的变量,不能当左值
[/Quote]

+
iamnobody 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keiy 的回复:]
计算顺序不同,EX:
a=i++; //a=i;i=i+1; 先赋值,后++
a=++i; //i=i+1; a=i; 先++,后赋值
[/Quote]

这个。。。个人认为没有先赋值后++之说。以下是我的看法。
c++中,一个表达式可能有一个值。例如:i+1; i = 3;i * 2; fun();//fun()有返回值时。;i+=3;i++这样的表达式都有一个值。
(i++)这个表达式的值是i修改之前的值。
(++i)这个表达式的值是i修心之后的值。

JieTouLangRen 2011-11-07
  • 打赏
  • 举报
回复
前置比后置的效率高
碎炎 2011-11-07
  • 打赏
  • 举报
回复
++在前和在后都是表达式 理解好表达式的值就行了
++在前 表达式的值是原值+1 并且返回自身的引用 可以当左值
++在后,表达式的值是原值,返回的是一个临时的变量,不能当左值
mengmingtao 2011-11-07
  • 打赏
  • 举报
回复
放在前面就是先计算
int a,b = 0;
a = ++b;
相当于
b = b+1;
a = b;


a = b++;
相当于
a = b;
b = b + 1;
柯本 2011-11-07
  • 打赏
  • 举报
回复
计算顺序不同,EX:
a=i++; //a=i;i=i+1; 先赋值,后++
a=++i; //i=i+1; a=i; 先++,后赋值

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧