i++先使用(遇到结束标识符(; , 函数的括号))再自加;++i先自加在使用。i++在使用时被替换成数值;++i在使用时被替换成变量
num = (i++)+(i++)+(i++)+(i++)
num = 8; i = 6;
解读:
i= 2
num = i + i + i + i
i使用完后自加四次
num = (++i)+(++i)+(++i)+(++i)
num = 19; i= 6
i = i + 1
i = i + 1
num = i + i
i = i + 1
num = num + i
i = i + 1
num = num + i
1#include <stdio.h>
2
3 void func(int a, int b,int c,int d,int e)
4 {
5 printf("a = %d\n",a);
6 printf("b = %d\n",b);
7 printf("c = %d\n",c);
8 printf("d = %d\n",d);
9 printf("e = %d\n",e);
10 }
11
12 int main()
13 {
14 int i = 2;
15 func(i++,++i,i++,++i,i++)//传递参数时从左向右传递,右侧的i++被替换成数值i=2,向右遇到逗号(结束标志)
16 i自加,i=3,++i被替换成变量i,直到完成所有的++后,才确定i的值,
17 return 0; func(6,i,4,i,2)
18 }
a = 6
b = 7
c = 4
d = 7
e = 2
num = (i++)+(i++)+(i++)+(i++)
num = 8; i = 6;
解读:
i= 2
num = i + i + i + i
i使用完后自加四次
num = (++i)+(++i)+(++i)+(++i)
num = 19; i= 6
i = i + 1
i = i + 1
num = i + i
i = i + 1
num = num + i
i = i + 1
num = num + i
1#include <stdio.h>
2
3 void func(int a, int b,int c,int d,int e)
4 {
5 printf("a = %d\n",a);
6 printf("b = %d\n",b);
7 printf("c = %d\n",c);
8 printf("d = %d\n",d);
9 printf("e = %d\n",e);
10 }
11
12 int main()
13 {
14 int i = 2;
15 func(i++,++i,i++,++i,i++)//传递参数时从左向右传递,右侧的i++被替换成数值i=2,向右遇到逗号(结束标志)
16 i自加,i=3,++i被替换成变量i,直到完成所有的++后,才确定i的值,
17 return 0; func(6,i,4,i,2)
18 }
a = 6
b = 7
c = 4
d = 7
e = 2