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