对这个准则的理解: 在c++编程中同一条语句不能同时具备两种及以上含义,每一条语句只有一种执行方式,只能得到一种执行结果。 准则的具体表现: (1)运算符的优先级与结合性 优先级是为了消除诸如3+45是应被当做(3+4)5还是3+(4*5)的二义性而制定的规则。 示例代码:
int x = 3 + 4 * 5;输出x=23,而非35。
结合性是为了消除诸如x=y=z是应先执行y=z还是x=y的二义性而制定的规则。 示例代码:
int x, y=1, z=2; x=y=z;(2)标识符不能以数字开头 数字是常量,而标识符是变量,如果写成“1WDR”、“1234”此类,则计算机无法识别出是变量还是常量,会大大增加计算机和程序员的负担。 (3)贪心规则 贪心规则指的是在求解问题时,不考虑整体最优,将问题分解成更小的问题,在之后的每一步中做出当前最优选择,寻求局部最优解。虽然贪心规则一般并不会产生问题最优解,但是在一定时间局限内,局部最优解可以近似为问题最优解。因为贪心规则得到的是局部的最优解,则可以消除其他非最优解的二义性。
对这个准则的理解: 高效性是为了减少计算机的运算时间和节约存储空间而简化运行过程。 准则具体表现: (1)数组下标0索引 数组是一段连续的空间,在内存中申请的是一段连续的内存地址,要求a[i]就是求它的地址,然后找到它。 如果从0开始,则a[i]的地址=首地址+ i*每个数据所占的长度 如果从1开始,则a[i]的地址= 首地址 + (i-1)*每个数据所占的长度。 0索引可以提高计算机运行速率。 2)逻辑短路。 当使用逻辑运算符&&时若运算符左边条件为假时,则不会对运算符右边条件进行判断。“或”逻辑前面为1,“与”逻辑前面为0就会发生短路。保证了运行的高效性。 示例代码:
int a = 1,b = 2,c = 3,d = 4,m = 3,n = 3; (m=a>b)&&(n=c<d); printf("%d\t%d",m,n);因为a>b为假,不会运行后边一项,最后输出的结果为0,3
对这个准则的理解: 因为程序设计语言是程序员在使用,则其语言规则需要符合人日常习惯,才能使程序员更加舒适的使用该语言。 准则具体表现: (1)阅读自上而下 (2)运算优先级
对这个规则的理解: 在两个不同但是相似的两个对象a、b中,相互都具有对方的行为,a中有与b中相似的语句,b中有与a相似的语句。 准则的具体表现: (1)C++的三类初始化方式:等号初始化、括号初始化、列表初始化 等号初始化:
int x = 6; int x = y;可赋予常量的值也可以赋予变量
括号初始化:
int x (6); int x (y);括号初始化是变量与对象之间的“相似相同规则”
列表初始化: int x {y}; int x {6}; int x={y}; int x={6}; int x({6}) 列表初始化是变量与数组之间的“相似相同规则”。 C++将变量、对象、数组统一
