以下i的初值都为2
1、num = (++ i) + (++i) + (++i) + (++i);
计算顺序:
i= i + 1 ---->i = 3
i= i + 1 ---->i = 4
num = i + i ---->num = 4 + 4 = 8
i = i + 1 ---->i = 5
num = num + i ---->num = 8 + 5 = 13
i = i + 1 ---->i = 6
num = num + i; --->num = 13 + 6 = 19
2、i= i *((i ++) + (++i))
计算顺序:
由于括号中i++一开始不要自加,所以先算++i
++i ---->i = 3
(i++) + (++i) = 3 + 3 = 6
i * ((i++) + (++i)) = 3 * 6 = 18
i +1=19
3、num = (i++) + (++i) + (i++) + (++i)
计算顺序:
num = (i++) + (++i) ---->num = 3 + 3 = 6(先算++i,i= 3,然后再算num = (i++) + (++i))
num = num + (i ++)= 6 + 3 = 9
num = num + (++i) = 9 + 4 = 13
num = 13 + 1 + 1=15(遇到逗号结束,调用之前的i++进行两次自加)
4、void func(int m,int n)
{
printf("m = %d",m);
printf("m = %d",n);
}
int main()
{
int i = 2;
func(i ++,++i);
return 0;
}
***************************************************
2>i++被替换为数值,++i被替换为变量名
3>分号、函数调用左边的括号、逗号都为结束标志
***************************************************
计算顺序:
++i ---->i作为变量不进行值传递,只是进行自加,i= 3
++i ---->i作为变量不进行值传递,只是进行自加,i= 4
输出4,4
5、程序修改为:func(i ++,i ++)
计算顺序:
i先作为值传递到函数中输出2
然后遇到逗号,即结束标志,i自加变为3,
i作为值传递到函数中输出3
i再自加变为4
6、再修改为:func(i++,i,++i,i++)
计算顺序:
i先作为值传递值函数,输出2
i遇到逗号自加,i的值变为3
i先自加变为4,不过是以变量的形式存在,不传递值函数输出
i作为一个变量不输出,此时i的值为4
i作为值的形式输出,输出为4,而后i的值自加变为5
1、num = (++ i) + (++i) + (++i) + (++i);
计算顺序:
i= i + 1 ---->i = 3
i= i + 1 ---->i = 4
num = i + i ---->num = 4 + 4 = 8
i = i + 1 ---->i = 5
num = num + i ---->num = 8 + 5 = 13
i = i + 1 ---->i = 6
num = num + i; --->num = 13 + 6 = 19
2、i= i *((i ++) + (++i))
计算顺序:
由于括号中i++一开始不要自加,所以先算++i
++i ---->i = 3
(i++) + (++i) = 3 + 3 = 6
i * ((i++) + (++i)) = 3 * 6 = 18
i +1=19
3、num = (i++) + (++i) + (i++) + (++i)
计算顺序:
num = (i++) + (++i) ---->num = 3 + 3 = 6(先算++i,i= 3,然后再算num = (i++) + (++i))
num = num + (i ++)= 6 + 3 = 9
num = num + (++i) = 9 + 4 = 13
num = 13 + 1 + 1=15(遇到逗号结束,调用之前的i++进行两次自加)
4、void func(int m,int n)
{
printf("m = %d",m);
printf("m = %d",n);
}
int main()
{
int i = 2;
func(i ++,++i);
return 0;
}
***************************************************
函数调用自加时候的作用规则:
1>函数从右边开始传递参数2>i++被替换为数值,++i被替换为变量名
3>分号、函数调用左边的括号、逗号都为结束标志
***************************************************
计算顺序:
++i ---->i作为变量不进行值传递,只是进行自加,i= 3
++i ---->i作为变量不进行值传递,只是进行自加,i= 4
输出4,4
5、程序修改为:func(i ++,i ++)
计算顺序:
i先作为值传递到函数中输出2
然后遇到逗号,即结束标志,i自加变为3,
i作为值传递到函数中输出3
i再自加变为4
6、再修改为:func(i++,i,++i,i++)
计算顺序:
i先作为值传递值函数,输出2
i遇到逗号自加,i的值变为3
i先自加变为4,不过是以变量的形式存在,不传递值函数输出
i作为一个变量不输出,此时i的值为4
i作为值的形式输出,输出为4,而后i的值自加变为5