《C程式語言》筆記 十一 參考手冊3

2022-02-02 23:27:42 字數 1597 閱讀 2514

運算子的優先順序和結合性有明確的規定

除少數情況外,表示式的求值次序沒有多餘,甚至某些有***的子表示式也沒有第一

也就是說,除非運算子的定義保證了其運算元按某一特定順序求值,否則具體的實現可以自由的選擇任一求值次序,甚至可以改變求值次序

但是,每個運算子將其運算元生成的值結合起來的方式與表示式的語法分析方式是相容的

c語言沒有定義表示式求值過程中的溢位、除法檢查和其他異常的處理

大多數現有c語言的實現在進行帶符號的整型表示式的求值以及賦值時忽略溢位異常,有時候可以用非標準庫函式進行調整

對應某型別t,如果某表示式或子表示式的型別為「t型別的陣列」

則此表示式的值是指向陣列中第乙個物件的指標,並且此表示式的型別將被轉換為「指向t型別的指標」

如果表示式是一元運算子&或sizeof,則不會進行轉換。

類似地,除非表示式被用作&運算子的運算元,否則型別為「返回t型別值的函式」的表示式將被轉換為「指向返回t型別的值的函式的指標」型別

初等表示式包括識別符號 常量 字串或帶括號的表示式

字尾表示式中的運算子遵循從左到右的結合規則

字尾表示式

初等表示式

(引數列表)

. 成員

->成員

++--

陣列引用

函式呼叫

結構引用

字尾自增自減

帶一元運算子的表示式遵循從右到左的結合性

字尾表示式

++表示式

--表示式

強制型別轉換

sizeof 一元表示式

sizeof (型別名)

一元運算子: & * + - !

字首自增運算子自減運算子

位址運算子&

間接定址運算子 *

一元加運算子

一元減運算子

二進位制反碼運算子~

邏輯非運算子!

sizeof運算子

sizeof運算子計算儲存與其運算元同型別的物件所需的位元組數

運算元可以為乙個未求值的表示式

也可以為乙個用括號擴起來的型別名

將sizeof用於char時,結果為1

用於陣列時,其值為陣列中位元組的總數

用於結構和聯合時,結果為物件的位元組數

包括物件中包含的陣列所需的任何填充空間

此運算子不能用於函式型別和不完整型別的運算元,也不能用於位欄位

結構是乙個無符號整型常量 size_t

(型別名)型別轉換表示式

乘法運算子* / 和%遵循左到右的結合性

移位類運算子《和》遵循從左到右的結合性

每個運算子的個運算元必須為整型,並且遵循整型提公升原則

結果的型別是提公升後的左運算元的型別

如果右運算元為負值

或者大於等於左運算元的型別的位數,則結果沒有定義

關係運算遵循從左到右的結合性,但這個規則沒有什麼用

a相等運算子與關係運算子具有相同的規則,但這類運算子還允許執行:

指標可以和0的常量整型表示式或指向void的指標解析比較

《C程式語言》筆記 十四 參考手冊6

預處理器執行巨集替換 條件編譯以及包含指定的檔案 以 開頭的命令列 前可以有空格 就是預處理器處理的物件 預處理過程可以劃分為幾個連續的階段 1.將三字串行轉換為等價字元。如果作業系統需要,還要在原始檔的各行之間插入換行符 2.將指令行中位於換行符前的反斜槓 刪除,以把各指令行連線起來 3.將程式分...

語言參考手冊

有人都說 比較難,我看不怎麼難 可能就是 語言接觸到的底層太多了,所以感到有點難了,但這也不是什麼壞處,正是體現了 語言的優越之處 我們的許可權更大,寫出的程式在效能上更好!由於這個原因,再加上自己也想有個總結性的 參考手冊,原本打算自己根據 標準 c89 c99 整理一下 語言的,可誰知竟然發現這...

Python 語言參考手冊

本參考手冊描述了 python 的語法和 核心語義 本參考是簡潔的,但試圖做到準確和完整。非必要的內建物件型別和內建函式 模組的語義描述在 python 標準庫 中。有關該語言的非正式介紹,請參閱 python 教程 對 c 或 c 程式設計師,還有兩個額外的手冊 擴充套件和嵌入 python 直譯...