這題的答案是:10,12,120
之前沒有明白c=12是怎麼回事?
a++是先運算,在自增的
++a是先自增在運算
比如b=a++和 b=++a; 若a=10 ,則 b 分別為 10 和 11
b=a++ 這裡,先賦值,在++,把a賦給b,b=10,a在自加,a=10+1=11
c=++a 這裡,先++,在賦值,a自加,a=11+1,把a賦給c,c=12
d = 10 * a++ 這裡,要看運算優先級。。。++自增運算符 的優先級高於 = 賦值運算符。。。d=10*a++。。。a++,這個先運算在自增,a*10=120,a自增,a=13
int main(int argc, const char * argv[])
{
int a,d;
a=10;
d = 10*(a++);
printf("a=%d,d=%d\n",a,d);
d = 10*a++;
printf("a=%d,d=%d\n",a,d);
return 0;
}
打印:
a=11,d=100
a=12,d=110
--------------
int a,d;
a=10;
d = 10*(a++);
printf("a=%d,d=%d\n",a,d);
打印:a=11,d=100
int a,d;
a=10;
d = 10*a++;
printf("a=%d,d=%d\n",a,d);
打印:a=11,d=100
雖然打印結果一樣,但是,要看是先自增再運算,還是先運算再自增
-----------
#include <stdio.h>
int main(int argc, const char * argv[])
{
int a,d;
a=10;
d = 10*(++a);
printf("a=%d,d=%d\n",a,d);
return 0;
}
打印:
a=11,d=110
------------------
C語言運算符優先級 詳細列表
同一優先級的運算符,運算次序由結合方向所決定。
簡單記就是:! > 算術運算符 > 關系運算符 > && > || > 賦值運算符
-----------
-
打印結果::
--------------