良好的编程习惯:
过多的嵌套会使程序难以理解,有一条规则:设法避免超过三层的嵌套
建议:只有在必要时才使用后置操作符
原因:因为前置操作需要做的工作更少,只需加1后返回加1后的结果即可。而后置操作符则必须先保存操作数原来的值,以便返回未加1之前的值作为操作结果。对于int型对象和指针,编译器可优化掉这项额外工作。但是对于更多的复杂迭代器类型,这种额外工作可能会话费更多的代价。因此,养成用前置操作符。
linux下EOF用^D终止
错误预防技巧:
程序员在书写x==7之类的条件时,通常变量放在左边常量放在右边,请改掉这个编程习惯,写成像7==x 一样,即将常量放在左边,变量放在右边,这样,若程序员不小心将“==”写成“=”,编译器起到保护作用。
软件工程知识:
应利用const限定符增强最小特权原则。使用最小特权原则进行正确的软件设计可以大大减少调试时间和错误的副作用,也使得程序更容易修改和维护。
如: inline double cube(const double value){}
性能提示:
按值传递的一个缺点是,如果有一个大的数据项需要传递,那么复制这些数据项就会花去大量的时间和内存空间。
按引用传递对性能很有帮助,但按引用传递可能削弱安全性。
良好的编程习惯
总是用一元作用域分辨运算符(::)来引用全局变量使得程序更容易阅读和理解。因为可以更加清楚的知道用户访问的是一个全局变量。
将指针传递给函数有四种方法:指向非常量数据的非常量指针,指向常量数据的非常量指针,指向非常量数据的常量指针,指向常量数据的常量指针。每种方式都提供了不同层次的访问权限。
指向给常量的非常量指针:具有极大的访问权限----可通过间接引用指针使其修改数据,也可修改指针使其指向其他数据。
指向常量数据的非常量指针:可以被修改以指向任何适当类型的其他数据项,但是不能通过该指针来修改他所指向的数据。可以用这种指针为函数接收数组实参,函数处理数组的每个元素,但不允许修改数据项。
指向非常量数据的常量指针:指向非常量数据的常量指针始终指向同一个内存位置;通过该指针可以修改这个位置上的数据。这就是数组名的默认情况,数组名是指向这个数组开始处的常量指针。是用数组名和下标,可以访问和修改数组中的多有元素。指向非常量数据的常量指针可以用来接收数组作为函数的实参,在函数中用数组下标表示法访问数组元素。
指向常量数据的常量指针:具有最小的访问权限。这种指针总是指向内存中相同的位置,并且不能用该指针修改这个内存位置的数据。如果一个函数接收数组做参数,只是用数组下标表示法读取数组而不能修改数据,那么应该用这种指针。