2.6 賦值表達(dá)式
2.6.1 賦值運(yùn)算符和賦值表達(dá)式
在C語言中,賦值號“=”是一個運(yùn)算符,稱為賦值運(yùn)算符。由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式,其形式如下:
變量名=表達(dá)式
賦值號的左邊必須是一個代表某一存儲單元的變量名,對于初學(xué)者來說.只要記住賦值號左邊必須是變量名即可。賦值號的右邊必須是C語言中合法的表達(dá)式。賦值運(yùn)算的功能是先求出右邊表達(dá)式的值,然后把此值賦給賦值號左邊的變量,確切地說,是把數(shù)據(jù)存入以該變量為標(biāo)識的存儲單元中去。例如,a和b都被定義成int類型變量:
a=10; /*把常量l0賦給變量a*/
b=a; /*把a(bǔ)中的值賦給變量b,a中的值不變*/
在程序中可以多次給一個變量賦值,每賦一次值,與它相應(yīng)的存儲單元中的數(shù)據(jù)就被更新一次,內(nèi)存中當(dāng)前的數(shù)據(jù)就是最后一次所賦的那個數(shù)據(jù)。
說明:
(1)賦值運(yùn)算符的優(yōu)先級別只高于逗號運(yùn)算符,比任何其他運(yùn)算符的優(yōu)先級都低,且具有自右向左的結(jié)合性。因此,對于如下的表達(dá)式:
a=2+7/3
由于所有其他運(yùn)算符的優(yōu)先級都比賦值運(yùn)算符高,所以先計算賦值運(yùn)算符右邊表達(dá)式的值,再把此值賦給變量a。(2)賦值運(yùn)算符不同于數(shù)學(xué)中的“等于號”,這里不是等同的關(guān)系,而是進(jìn)行“賦予”的操作。
(3)賦值表達(dá)式x=y的作用是,將變量y所代表的存儲單元中的內(nèi)容賦給變量x所代表的存儲單元。x中原有的數(shù)據(jù)被替換掉。賦值后,變量y中的內(nèi)容保持不變。此表達(dá)式應(yīng)當(dāng)讀作“把右邊變量的值賦給左邊變量”,而不應(yīng)讀作“x等于y”。
(4)在賦值表達(dá)式x=x中,雖然賦值運(yùn)算符兩邊的運(yùn)算對象都是x,但出現(xiàn)在賦值號左邊和右邊的x具有不同的含義。賦值號右邊的x表示變量x所代表的存儲單元中的值。賦值號左邊的x代表以x為標(biāo)識的存儲單元。該表達(dá)式的含義是取變量x中的值放到變量x中去。當(dāng)然,這一操作并無實(shí)際意義。
表達(dá)式n=n+1也是合法的賦值表達(dá)式,其作用是取變量n中的值加1后再放回到變量n中,即使變量n中的值增1。
(5)賦值運(yùn)算符的左側(cè)只能是變量,不能是常量或表達(dá)式。a+b=c就是非法的賦值表達(dá)式。
(6)等號右邊的表達(dá)式也可以是一個賦值表達(dá)式。如a=b=7+1,按照運(yùn)算符的優(yōu)先級,將首先計算出7+1的值8,然后按照賦值運(yùn)算符自右向左的結(jié)合性,把8賦給變量b,最后再把變量b的值賦給變量a。而表達(dá)式a=7+1=b則是不合法的,因?yàn)樵?+1=b中,在賦值號的左邊不是一個變量。
(7)在C語言中,“=”號被視為一個運(yùn)算符,a=19是一個表達(dá)式,而表達(dá)式應(yīng)該有一個值,C語言規(guī)定最左邊變量中所得到的新值就是賦值表達(dá)式的值。
(8)C語言的賦值表達(dá)式可以作為語句中的某個成分出現(xiàn)在眾多的語句或表達(dá)式中,從而使變量中的數(shù)值變化過程變得難于掌握。因此要求讀者在學(xué)習(xí)過程中建立正確的概念,才能準(zhǔn)確掌握賦值表達(dá)式的運(yùn)算規(guī)律。
編輯推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |