4.賦值運(yùn)算符
賦值運(yùn)算的最簡(jiǎn)單形式是
變量=表達(dá)式
其中“=”是賦值運(yùn)算符。賦值運(yùn)算的執(zhí)行過(guò)程是:
(l)先計(jì)算賦值運(yùn)算符右端的表達(dá)式;
(2)如表達(dá)式的類型與賦值運(yùn)算符左邊的變量類型不同(僅限于基本類型),將表達(dá)式值的類型自動(dòng)轉(zhuǎn)換成變量的類型;
(3)將求得的值賦給變量,即存儲(chǔ)到由變量所占的內(nèi)存中。
簡(jiǎn)單地說(shuō),計(jì)算表達(dá)式的值,將該值賦給變量。
賦值運(yùn)算也有結(jié)果,經(jīng)賦值運(yùn)算后,賦值表達(dá)式具有賦值后賦位運(yùn)算符左邊變量同樣的類型和值。因賦位運(yùn)算有值,所以可以進(jìn)一步參與運(yùn)算,特別是可以再賦植給其它變量。賦值運(yùn)算符的結(jié)合性是‘邊有至左”的,當(dāng)連續(xù)有多個(gè)賦值運(yùn)算時(shí),則從右至左逐個(gè)賦值。如有變量定義:
int k; double x;
則賦值表達(dá)式:
x= k= 3.5
是先將實(shí)數(shù)3.5自動(dòng)轉(zhuǎn)換成整數(shù)3賦給整型變量k,然后又將整數(shù)3自動(dòng)轉(zhuǎn)換成實(shí)數(shù)3.0賦給實(shí)型變量X。所以,k的值是3,X的值是3.0。
在程序中,經(jīng)常遇到在變量當(dāng)前值的基礎(chǔ)上作某種修正的運(yùn)算。如
x=x+5.0
這類運(yùn)算的特點(diǎn)是:變量既是運(yùn)算對(duì)象,又是賦值對(duì)象。為避免對(duì)同一存儲(chǔ)對(duì)象的地址重復(fù)計(jì)算,C語(yǔ)言弓隊(duì)復(fù)合賦值運(yùn)算符。它們是
+=、-=、*=、%=、〈〈=、〉〉= 、&= 、^=、|=
通常,記日為某個(gè)雙目運(yùn)算符,復(fù)合賦值運(yùn)算
xθ=e
其等效的表達(dá)式為
x= xθ(e)
注意,當(dāng)e是一個(gè)復(fù)雜表達(dá)式時(shí),等效表達(dá)式的括號(hào)是必需的。如
y*= a+b
的等效表達(dá)式是y= y*(a+b)
賦值運(yùn)算符和所有復(fù)合賦值運(yùn)算符的優(yōu)先級(jí)全相同,并且都是“自右至左”結(jié)合,它們的優(yōu)先級(jí)高于遠(yuǎn)號(hào)運(yùn)算符的優(yōu)先級(jí),低于其它所有運(yùn)算符的優(yōu)先級(jí)。
5.逗號(hào)運(yùn)算符
逗號(hào)運(yùn)算符“,”用于將若干表達(dá)式連接起來(lái)順序地逐個(gè)計(jì)算。連續(xù)返號(hào)運(yùn)算的一般形式為:
表達(dá)式1,表達(dá)式2,…,表達(dá)式n
它的計(jì)算順序是從左到右逐一計(jì)算各表達(dá)式,并以表達(dá)式n的值為連續(xù)逗號(hào)運(yùn)算的結(jié)果。例如,表達(dá)式
x=( i=3, i*2)
使i等于3,X等于6。其實(shí),逗號(hào)運(yùn)算只是把多個(gè)表達(dá)式串聯(lián)起來(lái),在許多情況下,使用逗號(hào)運(yùn)算的目的只是想分別計(jì)算各個(gè)表達(dá)式的值,而并非想使用逗號(hào)運(yùn)算中最后那個(gè)表達(dá)式的值。逗號(hào)運(yùn)算最常用于for結(jié)構(gòu)中,用于給多個(gè)變量登初值,或用于對(duì)多個(gè)變量的值逐一修改等。逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,其結(jié)合性是“自左向右”的。
6.條件運(yùn)算符
條件運(yùn)算是一個(gè)三目運(yùn)算,有三個(gè)運(yùn)算對(duì)象。條件運(yùn)算的一般形式為
表達(dá)式1?表達(dá)式2:表達(dá)式3
條件運(yùn)算的計(jì)算規(guī)則是:
(1)計(jì)算表達(dá)式1的值;
(2)如果表達(dá)式1的值非0(真),則計(jì)算表達(dá)式2,并以表達(dá)式2的值為條件運(yùn)算的結(jié)果(不再計(jì)算表達(dá)式3);
(3)如果表達(dá)式1的值為0(假),則計(jì)算表達(dá)式3,并以表達(dá)式3的值為條件運(yùn)算的結(jié)果(不再計(jì)算表達(dá)式2)。
例如,表達(dá)式
X>y?X:y
如果x>y條件為真,則條件運(yùn)算取x值,否則取y值。
條件運(yùn)算符(?:)的優(yōu)先級(jí)高于賦值運(yùn)算符,低于邏輯運(yùn)算符,也低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。例如,表達(dá)式
max= X> y?X: y+ l
等效于表達(dá)式
max=((x>y) ?x:( y+l))
條件運(yùn)算符的結(jié)合性為“自右至左”。例如,表達(dá)式X>y?X:u>V?u:V
等效于表達(dá)式
X>y?X:(u>V?u:V)
7.長(zhǎng)度運(yùn)算符
長(zhǎng)度運(yùn)算以字節(jié)為單位給出其運(yùn)算對(duì)象所需(或所占)的字節(jié)數(shù),運(yùn)算對(duì)象可以是任何類型的數(shù)據(jù)對(duì)象或數(shù)據(jù)類型。它是根據(jù)對(duì)象的類型來(lái)確定對(duì)象(所需)的字節(jié)數(shù)的。
長(zhǎng)度運(yùn)算有兩種書寫形式:
sizeof變量名或sizeof(類型名)
如果有某種類型為江的變量V,其中t可以是系統(tǒng)提供的類型或用戶自己定義的類型,可以是簡(jiǎn)單的,也可以是數(shù)組、結(jié)構(gòu)等。則 sizeof V就是變量 V所占的字節(jié)數(shù)。如有
int j;
double x;
表達(dá)式sizeof j和sizeOf x分別是變量j和x所占的字節(jié)數(shù)。
sizeof(t)是系統(tǒng)為分配一個(gè)類型為t的數(shù)據(jù)對(duì)象所需的字節(jié)數(shù)。如sizeOf(int)和sizeof(dou-ble)分別是系統(tǒng)為分配一個(gè)類型為int和double變量所需的字節(jié)數(shù)。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |