- 相關(guān)推薦
關(guān)于C語(yǔ)言賦值運(yùn)算符
其一般形式為:
變量=表達(dá)式
例如:
x=a+b
w=sin(a)+sin(b)
y=i+++--j
賦值表達(dá)式的功能是計(jì)算表達(dá)式的值再賦予左邊的變量。賦值運(yùn)算符具有右結(jié)合性,因此a=b=c=5可理解為a=(b=(c=5))。
在其它高級(jí)語(yǔ)言中,賦值構(gòu)成了一個(gè)語(yǔ)句,稱(chēng)為賦值語(yǔ)句。 而在C中,把“=”定義為運(yùn)算符,從而組成賦值表達(dá)式。 凡是表達(dá)式可以出現(xiàn)的地方均可出現(xiàn)賦值表達(dá)式。
例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a(bǔ),b相加,和賦予x,故x應(yīng)等于13。
在C語(yǔ)言中也可以組成賦值語(yǔ)句,按照C語(yǔ)言規(guī)定,任何表達(dá)式在其未尾加上分號(hào)就構(gòu)成為語(yǔ)句。因此如x=8;a=b=c=5;都是賦值語(yǔ)句,在前面各例中我們已大量使用過(guò)了。
類(lèi)型轉(zhuǎn)換
如果賦值運(yùn)算符兩邊的數(shù)據(jù)類(lèi)型不相同,系統(tǒng)將自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換,即把賦值號(hào)右邊的類(lèi)型換成左邊的類(lèi)型。具體規(guī)定如下:
實(shí)型賦予整型,舍去小數(shù)部分。
整型賦予實(shí)型,數(shù)值不變,但將以浮點(diǎn)形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。
字符型賦予整型,由于字符型為一個(gè)字節(jié),而整型為二個(gè)字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符量。
【例3-18】
#include
int main(void){
int a,b=322;
float x,y=8.88;
char c1=k,c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);
return 0;
}
本例表明了上述賦值運(yùn)算中類(lèi)型轉(zhuǎn)換的規(guī)則。a為整型,賦予實(shí)型量y值8.88后只取整數(shù)8。x為實(shí)型,賦予整型量b值322, 后增加了小數(shù)部分。字符型量c1賦予a變?yōu)檎,整型量b賦予c2 后取其低八位成為字符型(b的低八位為01000010,即十進(jìn)制66,按ASCII碼對(duì)應(yīng)于字符B)。
注意:經(jīng)大家反饋,筆者發(fā)現(xiàn)上面的例子容易造成誤解,現(xiàn)已對(duì)代碼進(jìn)行更改,更改時(shí)間 2014-07-04 09:12:45,看評(píng)論的讀者請(qǐng)注意評(píng)論時(shí)間,不要混淆。
更改后的代碼如下:
#include
int main(void){
int a,c,b=322;
float x,y=8.88;
char c1=k,c2;
a=y;
x=b;
c=c1;
c2=b;
printf("a=%d, x=%f, c=%d, c2=%c ", a, x, c, c2);
return 0;
}
輸出結(jié)果:
a=8, x=322.000000, c=107, c2=B
復(fù)合的賦值運(yùn)算符
在賦值符“=”之前加上其它二目運(yùn)算符可構(gòu)成復(fù)合賦值符。如+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。
構(gòu)成復(fù)合賦值表達(dá)式的一般形式為:
變量 雙目運(yùn)算符=表達(dá)式
它等效于
變量=變量 運(yùn)算符 表達(dá)式
例如:
a+=5 等價(jià)于 a=a+5
x*=y+7 等價(jià)于 x=x*(y+7)
r%=p 等價(jià)于 r=r%p
【C語(yǔ)言賦值運(yùn)算符】相關(guān)文章:
C語(yǔ)言的條件運(yùn)算符12-19
c語(yǔ)言位運(yùn)算符的用法指導(dǎo)06-02
C語(yǔ)言和C++的分別06-18
C語(yǔ)言的結(jié)構(gòu)10-14
C語(yǔ)言考點(diǎn)精選06-29
C語(yǔ)言的應(yīng)用05-29
C語(yǔ)言試題08-02
什么是C語(yǔ)言07-27