A. c語言的前置和後置運算符的區別!
C語言的前置和後置運算符的區別為:執行順序不同、當前值不同、側重點不同。
一、執行順序不同
1、前置運算符:前置運算符的執行順序為先取變數的地址,運算它的內容,然後把值放到寄存器中。
2、後置運算符:後置運算符的執行順序為先取變數的地址,把它的值裝入寄存器中,在運算它內存中的內容。
二、當前值不同
1、前置運算符:前置運算符的當前值為變數值經過運算它後的內容。
2、後置運算符:後置運算符的當前值為變數值的內容。
三、側重點不同
1、前置運算符:前置運算符的側重點為先算後用。
2、後置運算符:後置運算符的側重點為先用後算。
B. C語言的運算符問題,前置運算和後置運算我搞不清楚
unsignedcharj,k,i=255;
j=i++;
k=++i;
在上述代碼中,後置自增自減運算符是在執行完賦值後再執行的,也就是相當於
j=i;
i=i+1;
而前置自增自減運算符是在賦值前執行的,也就是
i=i+1;
k=i;
因此,j的值應該是255,k應該是1。
#include<stdio.h>
intmain()
{
unsignedcharj,k,i=255;
j=i++;
k=++i;
printf("j=%d,k=%d ",j,k);
return0;
}
前置自增自減運算符和後置自增自減運算符放在一起運算時該怎麼判斷呢?
inta=0,b=0,c=0;
a=++b+c++;
先執行前置自增自減運算符,再執行賦值,最後執行後置自增自減運算符
inta=0,b=0,c=0;
b=b+1;
a=b+c;
c=c+1;
非常重要的一點!
inta=0;
printf("%d,%d",++a,++a);
這段代碼嚴格來說是錯誤的!
因為【參數求值順序】是【未定義】的。
參考CSDN這篇帖子:
http://bbs.csdn.net/topics/370153775
C. 關於c語言左右自增運算
C語言的前置++和後置++,稱為自增運算符
如果單獨寫 自增運算符為一個語句,二者沒有區別
++i; 和 i++; 都是讓i+1賦值給i
但是如果把自增運算符寫入到另外表達式中二者就有很大區別了。
例如
1、
i=5;
j=i++;此處表達式等價於「j=i;i=i+1;」兩條表達式。
執行後i為6,j為5
2、
i=5;
j=++i;此處表達式等價於「i=i+1;j=i;」兩條表達式。
執行後i為6,j為6
註:通過上述例子,可以看出運算順序產生了區別,導致了輸出結果產生不同。
D. C語言前置自加和後置自加
前置先給加/減1參與運算 置先用原值參與運算再給加/減
E. C語言中前置++和後置++的區別
i++ 與 ++i 的主要區別有兩個:
1、 i++ 返回原來的值,++i 返回加1後的值。
2、 i++ 不能作為左值,而++i 可以。
F. c語言關於先++和後++
7 x=n++; 後置自加, 先取值 再自加。 於是x是n的初始值,也就是5
8 x=++n; 前置自加, 先自加為6, 再取值。 x為自加後的值, 為6