賦值運算子和賦值表示式

2021-07-03 00:24:38 字數 1246 閱讀 5592

簡單賦值運算子和表示式,簡單賦值運算子記為「=」。由「= 」連線的式子稱為賦值表示式。其一般形式為: 變數=表示式 例如:

x=a+b

w=sin(a)+sin(b)

y=i+++--j 賦值表示式的功能是計算表示式的值再賦予左邊的變數。賦值運算子具有右結合性。因此

a=b=c=5

可理解為

a=(b=(c=5))

在其它高階語言中,賦值構成了乙個語句,稱為賦值語句。 而在c中,把「=」定義為運算子,從而組成賦值表示式。 凡是表示式可以出現的地方均可出現賦值表示式。例如,式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a,b相加,和賦予x ,故x應等於13。

在c語言中也可以組成賦值語句,按照c語言規定, 任何表示式在其未尾加上分號就構成為語句。因此如x=8;a=b=c=5;都是賦值語句,在前面各例中我們已大量使用過了。

如果賦值運算子兩邊的資料型別不相同, 系統將自動進行型別轉換,即把賦值號右邊的型別換成左邊的型別。具體規定如下:

1.實型賦予整型,捨去小數部分。前面的例2.9已經說明了這種情況。

2.整型賦予實型,數值不變,但將以浮點形式存放, 即增加小數部分(小數部分的值為0)。

3.字元型賦予整型,由於字元型為乙個位元組, 而整型為二個位元組,故將字元的ascii碼值放到整型量的低八位中,高八位為0。

4.整型賦予字元型,只把低八位賦予字元量。

void main()

int a,b=322;

float x,y=8.88;

char c1='k',c2;

printf("%d,%f,%d,%c",a=y,x=b,a=c1,c2=b);

本例表明了上述賦值運算中型別轉換的規則。a為整型,賦予實型量y值888後只取整數8。x為實型,賦予整型量b值322, 後增加了小數部分。字元型量c1賦予a變為整型,整型量b賦予c2 後取其低八位成為字元型(b的低八位為01000010,即十進位制66,按ascii碼對應於字元b)。

復合賦值符及表示式

在賦值符「=」之前加上其它二目運算子可構成復合賦值符。如

+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。 構成復合賦值表示式的一般形式為: 變數 雙目運算子=表示式 它等效於 變數=變數 運算子 表示式 例如: a+=5 等價於a=a+5  x*=y+7 等價於x=x*(y+7)  r%=p 等價於r=r%p

復合賦值符這種寫法,對初學者可能不習慣, 但十分有利於編譯處理,能提高編譯效率並產生質量較高的目標**。逗號運算子和逗號表示式在

賦值運算子和賦值表示式

1 賦值運算子 等於號 就是賦值運算子,它的作用是將乙個資料賦給乙個變數,也可以將乙個表示式的值賦給乙個變數。如,z 1 z x y 2 復合的賦值運算子 在賦值運算子 之前加上其他運算子,可以構成復合的運算子。如 a 3 等價於a a 3 a b 3 等價於a a b 3 a 3 等價於a a 3...

C 賦值運算子與賦值表示式

賦值符號 就是賦值運算子,它的作用是將乙個資料賦給乙個變數。如 a 3 的作用是執行一次賦值操作 或稱賦值運算 把常量3賦給變數a。也可以將乙個表示式的值賦給乙個變數。如果賦值運算子兩側的型別不一致,但都是數值型或字元型時,在賦值時會自動進行型別轉換。1 將浮點型資料 包括單 雙精度 賦給整型變數時...

賦值運算子 邏輯運算子 表示式

賦值運算子 num 1 等價於 num num 1 num 1 等價於 num num 1 num 2 等價於 num num 2 num 2 等價於 num num 2 num 2 等價於 num num 2 整除 num 2 等價於 num num 2 餘數 num 2 等價於 num num ...