在几乎所有的高级编程语言中,都有i++和++i的内容,而在C语言里,这一块是基础的不能再基础的内容,但是想当年谭浩强的C语言程序设计让我见识了什么叫小题大做,其实这是一个很简单的概念。类似的还有“--”。
记住两点就够用了,第一,++i 和 i++,在单独使用时,就是 i=i+1,例如下面两个程序在gcc编译后运行结果完全一样。
#include<stdio.h>
#include<stdlib.h>
int main ()
{
int i=0;
for( i=0;i<10;i++)
printf("%d ",i);
printf("\n");
for( i=0;i<10;++i)
printf("%d ",i);
printf("\n");
}
都是
0 1 2 3 4 5 6 7 8 9
同样,如果是C++写的程序,如果使用g++来编译
#include<iostream>
using namespace std;
int main(){
for(int i=0;i<10;i++)
cout<<i<<" ";
cout<<endl;
for(int i=0;i<10;++i)
cout<<i<<" ";
return 0;
}
这两行运行的结果也是一样的,
0 1 2 3 4 5 6 7 8 9。
第二点,a=i++;相当于 a=i;i=i+1;a=++i;相当于i=i+1;a=i;
所以,这里的两行代码执行结果就不一样了:
int a=0;
a=i++;
printf("a=%d,i=%d",a,i);
i=1;a=0;
a=++i;
printf("a=%d,i=%d",a,i);
记住这两点就够了。