并不是赋值以后才进行自增运算的!
1.i++,++i是增1运算其运算对象是i
2.c=i++;含义是把(i++)赋给c,这两行应该可以理解
3.(i++)是多少呢?实际上这有两个结果,一个是对i的增1,另一个是i++的结果(是原来的i值)
下面add1函数的第二参数为0时为++在变量右,非0时++在变量左.(仅供参考,欢迎指正)
#include <stdio.h>
int add1(int *p, int b);
int main(int argc, char* argv[])
{
int i=5,j=5;
int c,d;
c=add1(&i,0);
//相当于c=i++;
printf("i=%d\n",i);
printf("c=%d\n",c);
d=add1(&j,1);
//相当于d=++j;
printf("j=%d\n",j);
printf("d=%d\n",d);
}
int add1(int *p, int b)
{
int x;
x=((b==0)?(*p)++:++(*p));
return x;
}
[
本帖最后由 cnfarer 于 2010-1-29 07:45 编辑 ]