C語言賦值運算符
簡單賦值運算符記為“=”,由“= ”連接的式子稱為賦值表達式。以下是小編為大家搜索整理的C語言賦值運算符,歡迎大家閲讀!更多精彩內容請及時關注我們應屆畢業生考試網!
其一般形式為:
變量=表達式
例如:
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;都是賦值語句,在前面各例中我們已大量使用過了。
類型轉換
如果賦值運算符兩邊的數據類型不相同,系統將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。具體規定如下:
實型賦予整型,捨去小數部分。
整型賦予實型,數值不變,但將以浮點形式存放,即增加小數部分(小數部分的值為0)。
字符型賦予整型,由於字符型為一個字節,而整型為二個字節,故將字符的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;
}
本例表明了上述賦值運算中類型轉換的規則。a為整型,賦予實型量y值8.88後只取整數8。x為實型,賦予整型量b值322, 後增加了小數部分。字符型量c1賦予a變為整型,整型量b賦予c2 後取其低八位成為字符型(b的低八位為01000010,即十進制66,按ASCII碼對應於字符B)。
注意:經大家反饋,筆者發現上面的例子容易造成誤解,現已對代碼進行更改,更改時間 2014-07-04 09:12:45,看評論的讀者請注意評論時間,不要混淆。
更改後的代碼如下:
#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 n", a, x, c, c2);
return 0;
}
輸出結果:
a=8, x=322.000000, c=107, c2=B
複合的賦值運算符
在賦值符“=”之前加上其它二目運算符可構成複合賦值符。如+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。
構成複合賦值表達式的一般形式為:
變量 雙目運算符=表達式
它等效於
變量=變量 運算符 表達式
例如:
a+=5 等價於 a=a+5
x*=y+7 等價於 x=x*(y+7)
r%=p 等價於 r=r%p
-
淺談高職C語言課程的教學分析與設計
C語言作為學院網絡技術專業的人門課程,旨在通過鍛鍊學生的邏輯思維,牆養學生在職業崗位中實際應用的能力.目前,該專業的學生畢業後主要從事網站開發和網絡管理等方面的工作,而在這些領域幾乎都以C語言作為應用的開發工具.但從歷年教學實踐來看,教師往往付出的精力多...
-
C++ cin輸入流詳解
標準輸入流是從標準輸入設備(鍵盤)流向程序的數據。在頭文件iostream.h中定義了cin、cout、cerr、clog4個流對象,cin是輸入流,cout、cerr、clog是輸出流。下面是小編為大家整理的C++cin輸入流詳解,歡迎參考~cin是istream類的對象,它從標準輸入設備(鍵盤)獲取數據,程...
-
C語言scanf函數應用問題解答
C語言的輸入是由系統提供的庫函數完成的。scanf函數是C語言中最常用且功能最強的輸入函數,但該函數如使用不慎,就會出現錯誤或得不到預想的結果。以下結果都是基於VC++6.0運行環境。一、格式説明符和輸入項的三對應(類型、個數、順序)scanf函數格式中的格式説明(“%...
-
C語言的移位操作符使用方法
位移位運算符是將數據看成二進制數,對其進行向左或向右移動若干位的運算。位移位運算符分為左移和右移兩種,均為雙目運算符。第一運算對象是移位對象,第二個運算對象是所移的二進制位數。以下是小編為大家搜索整理的C語言的移位操作符使用方法,希望能給大家帶來幫...