簡單賦值運算符記爲“=”,由“= ”連接的式子稱爲賦值表達式。歡迎大家閱讀!更多相關信息請關注相關欄目!
無論是加減乘除還是大於小於,都需要用到運算符,在C語言中的運算符和我們平時用的基本上都差不多。運算符包括賦值運算符、算術運算符、邏輯運算符、位邏輯運算符、位移運算符、關係運算符、自增自減運算符。大多數運算符都是二目運算符,即運算符位於兩個表達式之間。單目運算符的意思是運算符作用於單個表達式。(具體什麼是表達式下一節再說)
C語言中的運算符
無論是加減乘除還是大於小於,都需要用到運算符,在C語言中的運算符和我們平時用的基本上都差不多。運算符包括賦值運算符、算術運算符、邏輯運算符、位邏輯運算符、位移運算符、關係運算符、自增自減運算符。大多數運算符都是二目運算符,即運算符位於兩個表達式之間。單目運算符的意思是運算符作用於單個表達式。(具體什麼是表達式下一節再說)
一、賦值運算符
賦值語句的作用是把某個常量或變量或表達式的值賦值給另一個變量。符號爲‘=’。這裏並不是等於的意思,只是賦值,等於用‘==’表示。
注意:賦值語句左邊的變量在程序的其他地方必須要聲明。
得已賦值的變量我們稱爲左值,因爲它們出現在賦值語句的左邊;產生值的表達式我們稱爲右值,因爲她它們出現在賦值語句的右邊。常數只能作爲右值。
例如:
count=5;
total1=total2=0;
第一個賦值語句大家都能理解。
第二個賦值語句的意思是把0同時賦值給兩個變量。這是因爲賦值語句是從右向左運算的,也就是說從右端開始計算。這樣它先total2=0;然後total1=total2;那麼我們這樣行不行呢?
(total1=total2)=0;
這樣是不可以的,因爲先要算括號裏面的,這時total1=total2是一個表達式,而賦值語句的左邊是不允許表達式存在的。
二、算術運算符
在C語言中有兩個單目和五個雙目運算符。
符號
功能
單目正
單目負
乘法
除法
取模
加法
減法
下面是一些賦值語句的例子,
在賦值運算符右側的表達式中就使用了上面的算術運算符:
Area=Height*Width;
num=num1+num2/num3-num4;
運算符也有個運算順序問題,先算乘除再算加減。單目正和單目負最先運算。
取模運算符(%)用於計算兩個整數相除所得的餘數。例如:
a=7%4;
最終a的結果是3,因爲7%4的餘數是3。
那麼有人要問了,我要想求它們的商怎麼辦呢?
b=7/4;
這樣b就是它們的商了,應該是1。
也許有人就不明白了,7/4應該是1.75,怎麼會是1呢?這裏需要說明的是,當兩個整數相除時,所得到的結果仍然是整數,沒有小數部分。要想也得到小數部分,可以這樣寫7.0/4或者7/4.0,也即把其中一個數變爲非整數。
怎樣由一個實數得到它的整數部分呢?這就需要用強制類型轉換了。例如:
a=(int)
(7.0/4);
因爲7.0/4的值爲1.75,如果在前面加上(int)就表示把結果強制轉換成整型,這就得到了1。那麼思考一下a=(float)
(7/4);最終a的結果是多少?
單目減運算符相當於取相反值,若是正值就變爲負值,若是負數就變爲正值。
單目加運算符沒有意義,純粹是和單目減構成一對用的。
三、邏輯運算符
邏輯運算符是根據表達式的值來返回真值或是假值。其實在C語言中沒有所謂的真值和假值,只是認爲非0爲真值,0爲假值。
符號
功能
&&
邏輯與
邏輯或
邏輯非
例如:
5!3;
0||-2&&5;
!4;
當表達式進行&&運算時,只要有一個爲假,總的表達式就爲假,只有當所有都爲真時,總的式子才爲真。當表達式進行||運算時,只要有一個爲真,總的值就爲真,只有當所有的都爲假時,總的式子才爲假。邏輯非(!)運算是把相應的變量數據轉換爲相應的真/假值。若原先爲假,則邏輯非以後爲真,若原先爲真,則邏輯非以後爲假。
還有一點很重要,當一個邏輯表達式的後一部分的取值不會影響整個表達式的值時,後一部分就不會進行運算了。例如:
a=2,b=1;
a||b-1;
因爲a=2,爲真值,所以不管b-1是不是真值,總的表達式一定爲真值,這時後面的表達式就不會再計算了。
四、關係運算符
關係運算符是對兩個表達式進行比較,返回一個真/假值。
符號
功能
>
大於
<
小於
>=
大於等於
<=
小於等於
等於
不等於
這些運算符大家都能明白,主要問題就是等於==和賦值=的區別了。
一些剛開始學習C語言的人總是對這兩個運算符弄不明白,經常在一些簡單問題上出錯,自己檢查時還找不出來。看下面的代碼:
if(Amount=123)
很多新人都理解爲如果Amount等於123,就怎麼樣。其實這行代碼的意思是先賦值Amount=123,然後判斷這個表達式是不是真值,因爲結果爲123,是真值,那麼就做後面的。如果想讓當Amount等於123才運行時,應該if(Amount==123)
……