C 程式設計的四個基本準則

2021-10-24 13:40:15 字數 1065 閱讀 2093

無二義性是任何一門邏輯科學應該遵循的基本準則。數學界的三次數學危機,本質上就是為了消除「二義性」的爭端。

準則的具體體現:

(1)運算子的優先順序和結合性

優先順序是為了消除諸如3+4*5 的表示式,是應該被當作(3+4)*5還是3+(4 * 5)的二義性而制定的規則。

例如:括號的優先順序高於加減乘除

int x = 3+4*5 ; // 此時 x = 23

int x = (3+4)*5 ; // 此時 x = 35

** (2) 識別符號不能以數字開頭**

假設識別符號能以數字開頭,那麼諸如「0123」、「0x19a」這類「識別符號」就無法被區分是常量還是變數。這條規則的制定很好地消除了此類二義性。

(3)貪心規則

對這個準則的理解:在c++被創造的年代,計算機的效能普遍較低,不同現在得益於製程的發展cpu具有較高的效能。因此,計算機效能是乙個重要的制約因素,是當時情境下的「主要矛盾」。在不違背「無二義性」的規則時,c++語言會選擇更為高效的語法規則作為標準語法

(1):陣列的下標0索引

陣列是一段連續的空間,要求a[i]就是求它的位址,然後找到它。如果從0開始,則a[i]的位址= 首位址 + i*陣列中每個元素所佔的長度;如果從1開始,則a[i]的位址= 首位址 + (i-1)*陣列中每個元素所佔的長度。顯然以0索引的方式可以更高效地計算。

&a[i] = &a[0] + i*sizeof a[0] ; // 當0為索引時

&a[i] = &a[0] + (i-1)*sizeof a[0] ; //當1為索引時

(2) : 邏輯短路

邏輯短路規則為對於表示式a&&b 當a為假時,b不會計算

#include using namespace std;

int main()

; // 列表初始化,是變數與陣列之間的「相似相同規則

本質上,是c++將變數、物件及陣列統一對待的原則的產物

C 程式設計的四個基本準則

1 最高準則 無二義性 對準則的理解 無二義,是c 程式語言的最高準則,同時也是所有型別程式語言的最高準則,即一串 不能有兩種不同的解釋,只能有一種解釋。一般情況下會通過將某些具有二義的行為定義為非法來實現。準則的具體體現 1 運算子的優先順序與結合性。優先順序是為了消除諸如1 2 3的表示式的二義...

C 程式語言的四個基本準則

二 次高準則 高效性 三 第三準則 合乎日常習慣 四 補充準則 相似相同規則 五 結語 對這個準則的理解 程式語言於計算機而言,通俗地說就是指令,若乙個指令出現歧義,計算機則會無法判斷該執行哪一種。倘若執行了其中一種,則可能與本來所需要的結果相悖,不符合實際需求。所以,程式語言的無二義性,可以使得我...

C 程式語言的四個基本準則

對這個準則的理解 這個準則,不僅是c 的準則,更是所有型別程式語言的最高準則。同一條c 語句不能同時具備兩種或多種含義,每一條c 語句只能通過一種方式執行,得到唯一結果。準則的具體體現 1 運算子的優先順序與結合性。優先順序是為了消除如5 6 7的表示式,是應該被當作 5 6 7還是5 6 7 的二...