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