1、最高准则:无二义性 对这个的理解:即对于一个计算机语音,当是正确的时,我们就只有一种读取的方法,也可以认为是在写编码的时候,只能编写出一种执行操作,避免计算机读取时发生错误。 准则的具体体现: (1)运算符的的优先级与结合性 优先级是为了消除诸如3+4*5的表达式,是应该被当做(3+4)*5还是3+(4*5)的二义性而设定的规则。 示例代码: 则输出的x是23,不会是35。 在计算机语言中有许多操作符的优先级都是相同的。这时,操作符的结合性就开始发挥作用了。 诸如int a,b=1,c=2;a=b=c; 我们发现,这个表达式只有赋值符,这样优秀级就无法帮助我们决定哪个操作先执行,是先执行b=c呢?还是先执行a=b。如果按前者,a的结果为2,如果按后者,a的结果为1。 示例代码: 则a=2,所以的赋值符(包括复合赋值)都具有右结合性,就是说在表达式中最右边的操作最先执行,然后从右到左依次执行。这样,c先赋值给b,然后b在赋值给a,最终a的值是2.类似地,具有左结合性的操作符(如位操作符“&”和“|”)则是从左至右依次执行。 (2)标识符不能以数字开头 在c++中,标识符是对变量名、函数名、和其他用户定义的对象命名。在语言中一般是变量的存在,而数字一般是常量存在,为了区别他是不是常量,因此便不能数字是标识符的开头。 (3)贪心规则 即每一个符号应该包含尽可能多的字符,也就是说,我们的编译器将程序分解成符号的方法是,从左到右一个个字符读入,如果该字符可能组成一个字符,那么再读入下一个字符,然后在判断已读入的两个字符是否可能是一个符号或一个符号组成 2、第二准则:高效性 (1)数组下方0的索引 因为数组变量实际上在内存上是这个数组变量中第一个元素的首地址,而在系统读取某个元素时,必须要得到那个元素的地址才能获得对应的值。 具体每个元素的内存地址=数组变量首地址+下标×每个元素所占用的字节数 如果从1开始,就要减去1效率自然不比从0开始高。 (2)逻辑短路 表示为如对于a&&b是,若a为假,则b不会计算。 示例代码:
3、第三准则:合乎日常习惯 因为在编写编码时,编译的是人,因此在不违背上面两条的准则下,所设计的都是按照人的习惯准则来进行编译的。 准则的具体体现: 如编码过程中,一般是自上而下的进行编译,并且计算机也是这样来读取编码而进行表示,也有许多的体现,如函数等。 4、第四准则:相似相同规则。 即一些不同的语句表示相同的意思。一些有不同的表示方法 准则的具体体现: 如初始化有不同的表示方法,分为:等号初始化、括号初始化、变量初始化,其每一种都是能够表示初始化的,针对这个我们把它称为相似相同。并且在编辑时,还会有许多的也是如此。