从零单排c++ primer(5)

(1)c++表达式要不然是右值,要不然就是左值。
(2)当一个对象被用作右值的时候,用的是对象的值,当一个对象被用作左值的时候用的是对象的身份。
(3)在需要左值的地方可以用右值来代替,但是不能把右值当成左值使用。
(4) 对于那些没有指定执行顺序的运算符来说,如果表达式指向并修改了同一个对象,将会引发错误并产生未定义的行为。
                int i = 0;
                cout << i << " " << ++i <<endl;
(5) bool  a = true;   bool b = -a;  //b还是true
(6) 参与取余运算的运算对象必须是整数类型。
(7)进行比较运算时除非比较的对象是布尔类型,否则不要使用布尔字面值true和fasle作为运算对象。  
(8)随着条件运算嵌套层数的增加,代码的可读性急剧下降。因此,条件运算的嵌套最好别超过两到三层。
(9)条件运算符的优先级非常低,因此当一条长表达式中嵌套了条件运算字表达式时,通常需要在它的两端加上括号。
(10)位运算符作用于整数类型的运算对象,并把运算对象看成是二进制位的集合。
(11) sizeof运算符返回一条表达式或一个类型名字所占的字节数,其所得的值是一个sizeof_t类型的常量表达式。
(12)强制类型转换本质上是非常危险的。
(13)强制类型转换:static_cast , dynamic_cast , const_cast , reinterpret_cast
(14)使用static_cast进行强制类型转换,只有不包含底层const都可以
                double slope = static_cast<double>(j)/i; 
(15)const_cast只能改变运算对象的底层const
(16)使用空语句时应该加上注释,从而令读这段代码的人都知道该语句是有意省略的。
(17)类型runtime_error是标准库异常类型的一种,定义在stdexcept头文件中。 
(18)行函数的调用完成两项工作:一是用实参初始化函数对应的形参,二是将控制权转移给被调用函数。
(19)实参是形参的初始值。
(20)函数的返回类型不能是数组类型或函数类型,他可以使指向他们的指针。
(21)把只存在于块执行期间的对象称为自动对象。
(22)函数的声明也称作函数原型。
(23)如果形参是引用类型,它将绑定到对应的实参上;否则,将实参的值拷贝后赋给形参。
(24)熟悉c的程序员常常使用指针类型的形参访问函数外部的对象。在c++语言中,建议使用引用类型的形参替代指针。
(25)如果函数无须改变引用形参的值,最好将其声明为常量引用。                               
(26)void fcn(const int i){}
           void fcn(int i){}    //error 重复定义了fcn(int)
(27) 管理数组实参的三种方法:1.使用标记指定数组长度。 2.使用标准库规范。 3.显示传递一个表示数组大小的形参
(28) 当使用main列表中的argv中的实参时,一定要记得选的实参从argv[1]开始;argv[0]保存程序的名字,而非用户输入。
(29)省略符形参只能出现在形参列表的最后一个位置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值