注册 登录
编程论坛 C++教室

关于后置++的问题

异ren 发布于 2016-02-16 09:55, 2116 次点击
#include<iostream>
using namespace std;
int main()
{
static int i=0;
i++;
cout<<i<<endl;
return 0;
}

#include<iostream>
using namespace std;
int main()
{
static int i=0;
cout<<i++<<endl;
return 0;
}
的区别
6 回复
#2
rjsp2016-02-16 10:05
区别不是很明显嘛,
前者 i++ 后输出 i 的值
后者输出 i++ 这个表达式的值
#3
异ren2016-02-16 10:13
回复 2楼 rjsp
为什么第二个答案是0呢,为什么不是1
#4
rjsp2016-02-16 11:05
以下是引用异ren在2016-2-16 10:13:31的发言:

为什么第二个答案是0呢,为什么不是1
int i = 0;
i++ 这个表达式的值就是0,副作用是i=1
#5
异ren2016-02-16 13:07
回复 4楼 rjsp
哦~我懂了,就是
cout<<i++<<endl;
是等价于x=i++;
cout<<x<<endl;
谢谢版主的耐心解释!
#6
hjx11202016-02-16 19:21
楼主要是想知道表达式和语句书中的出外可以在《C++ primer plus》第五章节找到答案
只有本站会员才能查看附件,请 登录

#7
xry1232016-02-20 21:41
后置++是在执行完当前这个语句后再把变量的值+1,第一部分,i++;这个语句执行完,i的值+1,输出为1.第二个,cout<<i++<<endl;执行这个语句之前i的值为0,所以输出0,执行完该语句后,i的值+1变为1
1