算術運算式
是由算術運算子和括弧串連起來的式子, 以下是算術運算式的例子:
a+b (a*2)/c (x+r)*8-(a+b)/7 ++i sin(x)+sin(y) (++i)-(j++)+(k--)
賦值運算子和賦值運算式
簡單賦值運算子和運算式,簡單賦值運算子記為“=”。由“= ”串連的式子稱為賦值運算式。其一般形式為: 變數=運算式 例如:
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;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);
}
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