C++编程的四个基本准则

    科技2026-01-20  12

    C++编程的四个基本准则

    一、 最高准则:无二义性

    无二义性是任何一门逻辑科学应该遵循的基本准则。数学界的三次数学危机,本质上就是为了消除“二义性”的争端。 准则的具体体现: (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 <iostream> using namespace std; int main() { int a = 1; cout << "a = " << a <<endl; false && (a=3); cout << "a = " << a <<endl; }

    运行结果为:

    三、第三准则:合乎日常习惯

    对这个准则的理解:任何编程语言最终都是给人用的,如果创造一套不符合日常习惯的规则,会给使用带来极大的不便性,这不仅不利于语言的使用,同时也会影响语言的生存。 (1):C++中的语句都由类英文语句组成 用英文单词的拆分和组合构成语句,不仅简洁,更利于人们的记忆。

    四、补充规则:相似相同原则

    对准则的理解:C++语言中,如果有两个不同的对象A与B,A有行为a,B有行为b,如果a与b两种行为在逻辑上具有相似性,则C++会为对象A额外增加一个行为b,也会将对象B额外增加一个行为a。 (1):C++语言中的初始化

    int k = 5 ; // 等号初始化与括号初始化是传统形式的初始化 int k (5) ; // 括号初始化,是变量与对象之间的“相似相同规则 int k = {5} ; // 列表初始化,是变量与数组之间的“相似相同规则

    本质上,是C++将变量、对象及数组统一对待的原则的产物

    Processed: 0.015, SQL: 9