賦值操做是程序設計中最經常使用的操做之一,C 語言共提供了 11 個賦值運算符,均爲二元運算符,其中僅有一個爲基本賦值運算符 =,其他 10 個均是複合賦值運算符,即:編程
用法: 變量標識符 = 表達式學習
做用:將一個數據(常量或表達式)賦給一個變量 ,左側必須是變量,不能是常量或表達式spa
注意:設計
1>.在程序中能夠屢次給一個變量賦值,每賦一次值,與該變量相應的存儲單元的數據就被更新一次,內存中當前的數據就是最後一次所賦值的那個數據。即,最左邊變量所獲得的新值是整個賦值表達式的值。視頻
2>.賦值運算符的優先級別高於逗號運算符。blog
3>.注意賦值運算符「=」和等於運算符「==」的差異教程
4>.賦值運算符的左側只能是變量,而不能使常量或表達式。右側能夠是表達式,包括賦值運算表達式。「a=b=1+1」是對的,而「a=1+1=b」是錯的(緣由:因爲賦值運算表達式的結合方式是從右到左,其第一個賦值表達式的左側是常數,因此錯誤)內存
賦值轉換規則:使賦值號右邊表達式值自動轉換成其左邊變量的類型get
【1】實型數據(包括單、雙精度)賦給整型變量時,捨棄實數的小數部分源碼
【2】整型數據賦給單、雙精度變量時,數值不變,但以浮點數形式存儲到變量中
【3】長度相同的有符號與無符號整型數間,原樣賦值,但數值有時會有變化
【4】char、int、long 等類型的轉換
1)「短」數據賦給「長」變量
符號擴展:若最高位位1(負數),則變量高字節位補1;反之,補0。
2)「長」數據賦給「短」變量
只將數據的低字節位原封不動送到變量中(數據有可能有差錯)。
在賦值符「 = 」以前加上其它運算符,構成複合賦值運算符。
種類:+=(加賦值)、-=(減賦值)、*=(乘賦值)、/=(除賦值)、%=(求餘賦值)、 <<=(左移賦值)、>>=(右移賦值)、&=(按位與賦值)、|=(按位或賦值)、*A=(按位異或賦值)。
注意:
1>.兩個符號之間不能夠有空格
2>.複合賦值運算符的優先級與賦值運算符的相同。表達式n+=1等價於n=n+1,做用是去變量n中的值增1再賦值給變量n,其餘複合賦值運算符的運算規則以此類推。
例:求表達式a+=a-=a*a的值
解:先進行「a-=a*a」運算,至關於a=a-a*a=12-144=-132
再進行「a+=-132」運算,至關於a=a+(-132)=-132-132=-264
3>.若是賦值運算符兩側的類型不一致,在賦值前系統將自動先把右側的值或經過表達式求得的數值按賦值號左邊變量的類型進行轉換。
請看下面的實例,瞭解 C 語言中全部可用的賦值運算符:
#include <stdio.h>
main()
{
int a = 21;
int c ;
c = a;
printf("Line 1 - = 運算符實例,c 的值 = %d\n", c );
c += a;
printf("Line 2 - += 運算符實例,c 的值 = %d\n", c );
c -= a;
printf("Line 3 - -= 運算符實例,c 的值 = %d\n", c );
c *= a;
printf("Line 4 - *= 運算符實例,c 的值 = %d\n", c );
c /= a;
printf("Line 5 - /= 運算符實例,c 的值 = %d\n", c );
c = 200;
c %= a;
printf("Line 6 - %= 運算符實例,c 的值 = %d\n", c );
c <<= 2;
printf("Line 7 - <<= 運算符實例,c 的值 = %d\n", c );
c >>= 2;
printf("Line 8 - >>= 運算符實例,c 的值 = %d\n", c );
c &= 2;
printf("Line 9 - &= 運算符實例,c 的值 = %d\n", c );
c ^= 2;
printf("Line 10 - ^= 運算符實例,c 的值 = %d\n", c );
c |= 2;
printf("Line 11 - |= 運算符實例,c 的值 = %d\n", c );
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Line 1 - = 運算符實例,c 的值 = 21
Line 2 - += 運算符實例,c 的值 = 42
Line 3 - -= 運算符實例,c 的值 = 21
Line 4 - *= 運算符實例,c 的值 = 441
Line 5 - /= 運算符實例,c 的值 = 21
Line 6 - %= 運算符實例,c 的值 = 11
Line 7 - <<= 運算符實例,c 的值 = 44
Line 8 - >>= 運算符實例,c 的值 = 11
Line 9 - &= 運算符實例,c 的值 = 2
Line 10 - ^= 運算符實例,c 的值 = 0
Line 11 - |= 運算符實例,c 的值 = 2
今天就分享到這裏啦,但願對你們學習有所幫助!