一、
i++; 使用完毕后再自加,遇到分号结束" ; "
++i; 先对 i 自加,然后再使用它
++i; 先对 i 自加,然后再使用它
i = 2;
num = (i++) + (i++) + (i++) + (i++);
输出 num = 8,i = 6;
num = (i++) + (i++) + (i++) + (i++);
输出 num = 8,i = 6;
num = (++i) + (++i) + (++i) + (++i);
3 4 5 6
输出 num = 18,i = 6;
3 4 5 6
输出 num = 18,i = 6;
i = (i++) + (++i) + (i++) + (++i)
i = 3 + 3 + 3 + 4 + 1 + 1 = 15;
i = (++i) + (i++) + (++i) + (++i)
i = 3 + 3 + 4 + 5 + 1 = 16;
i = i * ((i++) + (++i))
i = 3 * (3 + 3 ) + 1 = 19;
i = 3 + 3 + 3 + 4 + 1 + 1 = 15;
i = (++i) + (i++) + (++i) + (++i)
i = 3 + 3 + 4 + 5 + 1 = 16;
i = i * ((i++) + (++i))
i = 3 * (3 + 3 ) + 1 = 19;
二、
int main()
{
int i = 2;
func(i++;++i);
return 0;
}
void func(int a,int b)
{
printf("a = %d\n",a);
printf("b = %d\n",b);
}
输出 a = 3
b = 4
{
int i = 2;
func(i++;++i);
return 0;
}
void func(int a,int b)
{
printf("a = %d\n",a);
printf("b = %d\n",b);
}
输出 a = 3
b = 4
解释: 函数传参是从右边开始传参的,++i 被替换成变量, i++被替换成数值,分号,逗号和函数的小括号都是i++的结束标志。