发布网友 发布时间:2022-04-21 15:33
共2个回答
热心网友 时间:2023-07-02 18:19
--a(++a)表示先减(加)再带入表达式运算。a++和a--反之。
a++等价于:a = a + 1;
++a等价于:a = a - 1;
自减同理.
若a = 1
b = a++等价于:先取出a的值(未自增)并赋值给b,b = 1,再 a = a + 1;
b = ++a等价于:先 a = a + 1,并赋值给b,b = 2 再取出a的值 a = 2;
另:printf()这个函数参数计算是从右向左,参数匹配时从左到右。如:
printf("a++=%d/*c*/,a=%d/*b*/\n",a++/*C*/,a/*B*/);
其实是:B匹配b,C匹配c,先计算B,C
热心网友 时间:2023-07-02 18:19
--a
假定a=1,那么执行n=--a;后n=0,a=0,就是先执行a=a-1然后把a赋给n
a--
假定a=1,那么执行n=a--;后n=1,a=0,就是先把a赋给n,然后执行a=a-1