c语言赋值运算符左边必须是,C语言运算符入门讲解
概述
C 語言運算符分為算術、關系、邏輯、賦值、逗號和 sizeof 5 大類。
表達式:在 C/C++ 中,用運算符將操作對象連接起來就構成了表達式。表達式是用于計算的式子,是計算求值的基本單位。
操作對象:又稱操作數,操作數可以為常量、變量、函數等。
運算符:又稱操作符,按所需求的操作數的多少可以分為一元運算符、二元運算符、和三元運算符。按照運算性質可以分算法運算符、關系運算符、邏輯運算符、賦值運算符、逗號運算符和 sizeof 運算符。
當一個表達式中出現多個操作符時,需要考慮運算符的優先級和結合性。運算符的優先級和結合性決定了一個表達式的求值順序。
優先級:優先級高的運算符先運算,優先級低的運算符后運算。
結合性:運算符的結合性體現了運算符對其操作數進行運算的方向。當兩個運算符同級時,由其結合性決定運算順序。
左結合性:當一個運算符對其操作數為從左到右進行運算,則稱此運算符為左結合的。
右結合性:當一個運算符對其操作數為從右到左進行運算,則稱此運算符為右結合的。
NOTE:如果在表達式中使用圓括號()可以改變表達式的運算順序。
算術運算符
算術運算符連接操作數組成算術表達式,實現算術運算。
運算優先級:
+ -(正負) → ++ → – → * / % → + - (雙目加、減)
高 →→→→→→→→→→→→→→→低
NOTE:
求余運算只能針對整型數。 自增、自減運算:
i++ :使用 i 之后,i 的值加 1 ,即先取值,后自加。 ++i :i 的值先加 1,再使用 i ,即先自加,后取值。 i- - :使用 i 之后, i 的值減 1 ,即先取值,后自減。 - -i :i 的值先減 1 , 再使用 i , 即先自減,后取值。 自增、自減運算的作用對象是變量,不能使常量或表達式。
5++; //Error
++5; //Error
(a+b)++ //Error
關系運算符
關系運算符:用于確定一個量與兩一個量之間的關系,主要是比較兩個量之前的大小,即比較運算。 關系運算符都是雙目運算符,左結合性。 >=、<=、!=、== 是一個整體,所以中間不能有空格。 >、>=、
高 →→→→→→→→→→→→→→→ 低
關系表達式:用關系運算符將2個表達式連接起來的式子,稱為關系表達式。
表達式1 關系運算符 表達式2
//例:
a < b
a + b != c + d
'a' > 'b'
NOTE:
關系表達式的值是真或假。在 C 語言中,沒有 bool 類型,用整數值 0 來表示“假”,用非 0 值來表示 “真” 。在 C++ 中,為提高程序的可讀性,引入 bool 類型,其變量的值為 “true” 或 “false”。為了保持 C++ 對 C 語言的兼容性,“false” 用 0 來表示, “ture” 用 1 來表示。因此,關系表達式的結果為 0 或 1。 關系運算符兩側的表達式可以是算術表達式、關系表達式、邏輯表達式、賦值表達式或字符表達式。
邏輯運算
邏輯運算:表示操作數之間的邏輯關系。
優先級:
! → && → ||
高 →→→低
邏輯表達式:用邏輯運算符將操作數連接起來的式子稱為邏輯表達式,用于表達復雜的運算條件。
NOTE:
邏輯運算按操作數的整體值進行,運算時只考慮操作數的值是否為 0 ; 0 表示邏輯假, 非 0 表示邏輯真。其運算結果若為幀,則產生整數 1,否則產生 0 。 若邏輯表達式中同時出現多個運算符時,按下列順序進行運算:算術運算→關系運算→邏輯運算。
x > 0 && x <= 1 //0 1 || x < -1 //x>1或者x
賦值運算
賦值運算符:在 C/C++ 中,基本賦值運算符為 “=”,其功能是將一個數據賦給一個變量,即存入變量所對應的內存空間中。此外,基本賦值運算符還可以與算術運算符、位運算符等組成符合運算符。
賦值運算表達式:用賦值運算符將變量和表達式連接起來的式子稱為賦值表達式。
//一般形式:
變量 = 表達式
//例:
x=8 // √
y=x // √
z=x+y // √
x+y =z // ×,賦值運算符的左邊不能是表達式
sin(a) = 2 + x //×,sin(a)不是變量
NOTE:
賦值運算符“=”是將其右邊的表達式的值賦給左邊的變量,賦值運算符的左邊必須是變量名,右邊必須是表達式。 賦值表達式的值為賦值運算符左邊變量的值,其類型為左邊變量的類型。當出現右邊表達式的類型與左邊變量的類型不一致時,則先把右邊表達式的值轉換為與左邊變量相同的類型后在進行賦值。
a = 2.5 //當a為整型變量時,a的值為2,當a為浮點類型時,a的值為2.5.
多重賦值:V1 = V2 = … = Vn = 表達式。執行時,把表達式的值按照 Vn、… 、V2、V1 的順序依次賦給每個變量。
a = b = c = 1 //先將 1 賦給 c, 再將 c 的值賦給 b , 最后將 b 的值賦給 a。
復合賦值表達式:由復合賦值運算符構成復合賦值表達式。 賦值表達式后面加分號“;”可以構成語句(賦值表達式語句)。
//復合賦值表達式
V oper= E
//其中 oper為算術運算符,E為表達式,V為變量。
//V oper= E 等價于 V = V oper E
//例:
a += 3; //等價于 a = a + 3
a %= 2; //等價于 a = a % 2
a %= b + 2; //等價于 a = a % (b + 2)
a *= x - y; //等價于 a = a * (x - y)
逗號運算符
逗號運算符:又稱 順序求值運算符,其功能是將表達式連接起來,從左向右求解各個表達式,而整個表達式的值作為最后求解的表達式的值。
逗號運算符的優先級最低,引入逗號表達式的目的是為了簡化程序書寫,在 C/C++ 中常用逗號表達式代替幾條語句或是給某個變量賦值。
//逗號表達式的一般形式:
表達式1, 表達式2, 表達式3, ......, 表達式n
//C/C++ 按順序計算表達式 1,表達式 2, .....,表達式 n 的值。整個表達式的值為表達式 n 的值。
//例:
a = 1, b = a + 1, c = b + 1; //運算后,該逗號表達式的值為 c 的值,即 6。
d = (a = 1, b = a + 1, c = b + 1); //運算后,d 的值為 6。
sizeof 運算符
sizeof 運算符:求某一數據類型或某一變量在內存空間中所占空間的字節數。
sizeof (變量名或數據類型)
總結
以上是生活随笔為你收集整理的c语言赋值运算符左边必须是,C语言运算符入门讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flask-admin 学习及一些笔记
- 下一篇: Jinja的基础知识