1、最高准则:无二义性 对准则的理解:无二义,是c++编程语言的最高准则,同时也是所有类型编程语言的最高准则,即一串代码不能有两种不同的解释,只能有一种解释。一般情况下会通过将某些具有二义的行为定义为非法来实现。 准则的具体体现: (1)运算符的优先级与结合性。 优先级是为了消除诸如1+2*3的表达式的二义性所制订的,例如先乘除后加减等。结合性是为了消除诸如a=b+7=9所制订的,主要体现为运算符的运算是从左到右还是从右到左。 (2)变量名不能以数字开头。 这也是为了消除二义性而设置的,是为了消除诸如10与2E10的二义性所制订的,主要是为了防止计算机无法区分定义的是变量还是常量,因此规定命名是不能以数字开头。 (3)贪心规则 是为了消除诸如++i+++i+++i+i的二义性所制订的。即每个符号应该包含尽可能多的字符,计算机在从左到右依次读取字符时,如果已经读取的字符能构成一个字符,将读取下一个字符,然后判断它与前一组字符能否组成一个字符,如果可以组成一个字符则重复此部,如果不能则将此字符作为第一个字符进行依次往后读取。 2、高效性 由于c++出现时,计算机的效率较低,因此高效性作为c++的第二高准则。 (1)数据组下标0索引。 由于数组元素在内存中存储时为元素的首地址,因此在读取时要得到具体的元素地址才能够获取到。而具体每个元素的内存地址 = 数组变量首地址 + 下标 X 每个元素占用的字节数。以0作为下标相比于1可以减少减法运算,可以提升效率。 (2)逻辑短路 主要应用于诸如A&&B类的运算,当A为否时计算机将不再进行B的运算,以此来提高计算机的效率。 (3)c++中的工具 c++中引入诸如指针、内联函数和引用等工具,使c++变得更高效。 3、合乎日常习惯 这一准则是为程序员所准备,编程语言归根到底是给程序员所使用的,因此一个合乎大部分程序员日常习惯的编程方式能够提示速度、减少编程中出现的错误,提升编程的效率。 (1)运算符的优先级 例如加减乘除的优先级和()的优先运算等等与日常生活中我们所使用的大致想同,可以提升编程效率。 (2)数组的行列数 在定义数组时采用A[a][b],期中a代表行数,b代表列数,合乎大部分程序员的日常习惯。 4、相似相同原则 指的是在c++中,如果有两个不同的对象A与B,A有行为a,B有行为b。如果a与b两种行为在逻辑上具有相似性,则c++会为A额外增加一个b,同理,B也将增加一个行为a。 (1)数组的初始化 在对数组进行初始化时,如果输入A[a]={1}或A[a]={1,0}时,计算机会自动将剩下的未输入数字初始化为0 (2)自定义变量的初始化 在对自定义变量进行初始化时,有多种初始化方式,如int a=1、int a{1}等等。
