基本算數運算符
算數運算符:
+(加法運算符或正值運算符)、-(減法運算符或負值運算符)、*(乘)、/(除)、%(求余數)
雙目運算符:
雙目運算符兩邊的數值類型必須一致才能進行運算,如果不一致,系統要先進性一致性轉換,即運算符兩邊的數值類型向更高級別的一方保持一致
轉換規則:
char->short->int->unsigned->long->float->double
數據精度:
所有實數的運算都以雙精度方式進行,若是單精度,則需要在尾數后面補0轉換為雙精度數。
算數表達式和運算符的結合性和優先級
定義:
用算數運算符和括號將運算量連接起來的、符合C語言語法規則的表達式
運算對象:
函數、常量、變量等
可使用多層圓括號,但括號必須配對。運算時由內向外依次計算各表達式的值
對于不同優先級的運算符,按照運算符的優先級由高到低進行運算,若優先級相同,則按照結合方向進行運算
若運算符兩側的操作數類型不同,則先利用自動轉換或強制類型轉換,然后進行計算。
自加、自減運算符:
作用:
自加運算符“++”使運算變量的值增1,自減運算符“--”使運算變量的值減1
性質:
運算對象是整型或實型變量,但是不能對常量或表達式進行運算。均為單目運算符。
規則:
既可以作為前綴運算符,又可以作為后綴運算符
++i,--i:先使i的值加1或減1,在使用i的值
i++,i--:先使用i的值,再使i的值加1或減1
結合方向:
自左向右
賦值運算符與賦值表達式
“=”稱作為賦值運算符,作用是將一個數值賦值給一個變量或將一個變量的值賦值給另一個變量,由賦值運算符組成的表達式為賦值表達式
一般形式:
變量名=表達式
注意事項:
賦值運算符的優先級別高于逗號運算符
賦值運算符“=”有別于關系運算符“==”
賦值運算符的左側只能是變量,不能是常量或表達式。右側可以是表達式,也包括賦值表達式
賦值表達式將最后賦值的值作為最終結果
復合賦值運算符
定義:
在賦值運算符的前面加上其他運算符就構成了符合賦值運算符,包括+=、-+、*=、/=、%=、<<=、>>=、&=、^=、|=
注意事項:
兩個符號之間不可以由空格
符合賦值運算符的優先級與賦值運算符的相同
賦值運算中的類型轉換
當賦值運算符兩側的類型不一致時,在賦值前系統將自動把右側表達式求得的數值按照賦值號左邊的變量類型進行轉換(也可以用強制類型轉換的方式)
常見題型與易錯題
解析:
由printf輸出的數據都隱含右對齊
scanf和printf都是C語言提供的庫函數,不是語句
賦值語句時一種執行語句,必須放在函數的可執行部分才行
printf輸出數據所占的寬度由系統決定
解析:
++i;? --i;? 也可以算賦值語句
位運算
C原因呢提供的6種位運算符
位運算的相關說明
操作數個數:
位運算種除了反“~”運算之外,其他所有位運算都是雙目運算,要求運算符兩側各有一個操作數。
操作數類型:
位運算的操作數類型只針對整型或字符型數據,不能對實型數據進行位運算操作。
注意事項:
位運算僅作計算,不改變原有變量的值,只有賦值運算和自增自減運算才會改變原有變量的值。