Ⅰ c語言中++n和n++的區別
運算符優先順序問題。
後自增運算符(++,結合方向左至右)的優先順序高於取指示對象運算符(*,結合方向右至左)。
所以*n++指對n(指針)本身的自增。
而(*n)++指對n所指目標的自增。
Ⅱ C語言:n++和++n的區別,求大神講解。
一般在
for
循環里
i++
和
++i
是沒有什麼運行效果上的區別的。只要了解一下
for
循環的運行順序就知道了。
1for (①; ②; ④) {③}
一般
for
循環是按照這個順序執行的,①
中的語句只在初始時執行一次,然後緊接著進行
②
中的判斷,判斷為真時則開始執行循環體本身
③,執行完
③
後最後執行
④
中的語句,然後重復進行
②,③,④
順序的運行,當
②
中的條件為假時,結束循環。
現在看你的這個
12345for (; d <= n; ++d) { b = b + a; c = c + b; a = a * 10;}
因為你沒有第一部分初始條件,所以運行順序是,先判斷
d
和
n
的值,當
d
≤
n
時,執行循環中的語句,執行完後再執行
++d。根據你前面的賦值,d
的初始值是
1,判斷
1
不大於
n,於是過一遍循環內容,然後執行
++d
,d
的值變為
2,繼續判斷
2
和
n
的大小,如果
2
比
n
小的話,再過一遍循環內容,然後執行
++d,d
的值變為
3...
以此類推。
如果你改成
d++,
12345for (; d <= n; d++) { b = b + a; c = c + b; a = a * 10;}
其實是沒有任何區別的。運行順序是,首先
d
的初始值是
1,判斷
1
不大於
n,於是過一遍循環內容,然後執行
d++
,d
的值變為
2,繼續判斷
2
和
n
的大小,如果
2
比
n
小的話,再過一遍循環內容,然後執行
d++,d
的值變為
3...
以此類推。
由於
for
條件句的執行順序,判斷
d
和
n
關系的語句總在
d++
或
++d
已經完成之後進行,而不是同時進行。也就是說
d
被加了一這一過程已經完成,然後才開始做的判斷。所以無論是先加一還是後加一都不影響
d
的值,因為當程序需要使用
d
來進行判斷時,它已經被加一了。
一般說的
++d
和
d++
有不同情況是由於在
++
語句執行的同時使用
d
的值而導致的,比如
12int d = 1;printf("%d", d++);
和
12int d = 1;printf("%d", ++d);
一個輸出
1
一個輸出
2,這是因為同時使用
++
和
printf
時,就會出現一個順序問題。
d++
使
printf
先輸出
d
的值,然後再把
d
加一,而
++d
則先把
d
加一,再使用
printf
輸出
d
的值。但是無論怎樣,在這兩條語句執行完後,d
的值都是
2。
為了更便於理解,我再給出一種受影響的情況,
12345for (; d++ <= n; d++) { b = b + a; c = c + b; a = a * 10;}
和
12345for (; ++d <= n; d++) { b = b + a; c = c + b; a = a * 10;}
這就是兩種不同的情況了。因為
++
語句和比較語句在同一處進行,就產生了順序上的問題:是先加再比較還是先比較再加。如果是
d++
≤
n,那麼就是先比較
d
和
n
的值,再把
d
加一。如果是
++d
≤
n,那麼就是先把
d
加一,再比較加了一以後的
d
和
n
的值。
Ⅲ c語言中\n 與\\n的區別是什麼
\n是換行符;\\n第一個\是轉義字元,也就是說,\\n在屏幕上顯示\n
Ⅳ C語言中,「n」和『n』有什麼區別
「n」是字元串
'n'是字元
兩者不一樣。
Ⅳ c語言的 n++和++n的區別是什麼
n++ 是先返回在+1,
而++n 是先+1再返回
不明白繼續往下看:
例:(n++)
int n = 3;
int a = 2 + (n++);
n是先返回在+1所以這個時候,
a = 2 + 3 = 5;
n = 3 + 1 = 4;
例:(++n)
int n = 3;
int a = 2 + (++n);
這個時候 n 是先+1 再返回的;
n = 3 + 1 = 4;
a = 2 + (3 + 1) = 6;
Ⅵ c語言編程中\n /n有什麼區別怎麼快速打出\這個符號
對應於scanf("...\n",...);
你輸入n個數後,它是不會立即顯示的,要等再接收到一個非(空格、製表符、回車)的輸入,scanf語句才結束。
但請注意的是,最後輸入的那個非(空格、製表符、回車)的東西是不會被這個scanf讀進來的,而是留在輸入流里。因此你需要多輸入一個數字——>5個數字,來將緩沖區的前4個給到你的x1,x2,y1,y2。
Ⅶ C語言n++跟++n的區別
如果單獨使用的話,
沒有區別
如果是
int
m
=
++n;
和
int
m=n++;
這樣的話:
m=++n;
相當於:
n=n+1;
m=n;
而
m=n++;相當於:
m=n;
n=n+1;