【C语言笔记初级篇】第五章:操作符
目錄
(1)算數操作符
(2)移位操作符
A:左移
B:右移?
(3)位操作符
(4)賦值操作符
(5)單目操作符
(6)關系操作符
(7)邏輯操作符
(8)條件操作符(三目運算符)
(9)逗號表達式
(10)下標引用,函數調用和結構成員
A:下標引用操作符
B:函數調用操作符
C:結構體成員
(11)表達式求值
A:隱式類型轉換
B:算數轉換
C:操作符的屬性
(1)算數操作符
第一點:基本介紹
算數操作符包括以下幾種
第二點:注意事項
1:除了“%”之外,其余算數操作都可以用于整數和浮點數,"%"左右兩側必須為整數
2:對于“/”,當左右操作數是整數時,執行的是整除(也就是只要商的部分),當左右操作數有一個是小數時,當然前提變量要定義為浮點型,執行的就是除法,也就是結果是小數
(2)移位操作符
A:左移
左移就是這個數的二進制位向左移動,空出來的用0補齊
左移的結果就是這個數變為2倍
B:右移
邏輯移位:補碼向右移動,空出來的用0填充
算數移位:補碼向右移動,空出來的用符號位填充(主要使用)
算數右移的結果就是變為原來的二分之一
需要注意不要移動負數位,此標準未定義
(3)位操作符
(4)賦值操作符
賦值操作符基本無需講解,這里只需注意一下常用的這些復合賦值符
(5)單目操作符
第一:單目操作符的類型
第二:對其中幾個單目操作符的說明
1:sizeof
sizeof是用來計算空間大小的
sizeof和數組
sizeof內部不會進行計算
2:"~"按位取反
按位取反基本介紹
按位取反的應用
(6)關系操作符
(7)邏輯操作符
(注意這里的邏輯操作符不要和位操作符搞混了,位操作符是對數的二進制位進行操作,而邏輯操作符是對數本身操作)
第一:邏輯操作符類型
第二:邏輯與和邏輯或的區別
邏輯與:遇假則假,全真則真
邏輯或:遇真則真,全假則假
這里要特別注意邏輯與左邊為假停止計算,如果是邏輯或左邊為真停止計算
(8)條件操作符(三目運算符)
(9)逗號表達式
用逗號分開的表達式就叫做逗號表達式,逗號表達式會從左到右依次計算,最終逗號表達式返回的是最后一個表達式的結果
在一般情況下,逗號表達式是不常使用的,因為有時會造成代碼的不易理解
(10)下標引用,函數調用和結構成員
A:下標引用操作符
B:函數調用操作符
我們調用函數的圓括號,就是函數調用操作符
C:結構體成員
第一點:結構體是什么
我們之前使用的int,char類似于結構體,然后int a,就是創建一個int類型的變量。
我們可以把結構體理解為一個學生,這個學生它有很多信息,例如信息,學號,性別等等。而這些信息就叫做這個結構體的成員
第二點:創建結構體變量
上述實例中創建的就是“struct Student”的結構體,然后類似于Python中類與對象關系,進行實例化,就是創建結構體變量
第三:"結構體.成員名"
第四點:"結構體指針->成員名"
前面我們說過“int* a”,定義了一個指向int的指針a。那么這里對于我們自己創建的結構體也是這樣的
當然上述取成員的操作是正確的,但是太麻煩了,于是對于結構體指針我們取成員名是用"->"
(11)表達式求值
A:隱式類型轉換
第一點:什么是整型提升
C語言的整型算數運算總是至少以整型類型的精度進行的,如下一個例子中最終的輸出結果可能會與我們所想的不一樣
在上述這個表達式中,字符或短整形操作數在使用前被轉換為了普通整形,這種轉換稱為整形提升
第二點:整形提升的規則
第三:整形提升的例子
實例1
實例2:
B:算數轉換
C:操作符的屬性
第一:復雜表達式求值順序的決定因素
1:操作符的優先級
2:操作符的結合性(先考慮優先級再考慮結合性)
3:是否控制求值順序
4:! > 算術運算符 > 關系運算符 > && > || > 賦值運算符
總結
以上是生活随笔為你收集整理的【C语言笔记初级篇】第五章:操作符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos 7 安装NodeJS开发环
- 下一篇: ios开发之 icon规范+启动图规范+