五六章 札记--C++ primer 之旅

赋值表达式的值是左操作数的值,其结果的类型为左操作数的类型。

赋值操作具有右结合性 。  EX: int ival,jval;  ival=jval=0;

建议: 只有在必要是才使用后置操作符。++;  -- 
           前置操作不用保存原来操作数的未修改值,操作更少。

*iter++  等价于 *(iter++) :  后自增操作的优先级高于解引用操作。
注: 后置操作的优先级高于前置操作。。。这就是C++ 为啥不叫++C (纯属个人猜测)


sizeof 操作符:
     sizeof 对数组等效于整个数组在内存中的存储长度。 sizeof 的单位是字节。
     sizeof(ia)/sizeof(*ia)  可以获得数组的长度。

逗号操作符: 结果是其最右边表达式的值,如果最右边的操作数是左值,则逗号表达式的值也是左值。

new 操作:
注: new 表达式返回指向新创建对象的指针

动态创建对象的初始化。 直接初始化的方法!
int *pi= new int(1024);
string *ps=new string(10,'9');
默认初始化: int *pi=new int;
值初始化   : int *pi=new int():
以上两者区别: 前者的值是不确定的,后者的值为0.

delete :删除指针后,指针变成悬垂指针。 所以一旦删除指针后,应该立即将指针置为0。

const 对象的new 和 delete:
     new : const int *pi = new const int(1024);
              const string *pcs= new const string;
     delete : delete pi;

显示转换:
命名的强制类型转换符号 形式如:  cast-name<type>(expression)
     cast-name:   static_cast ;       dynamic_cast;     const_cast;      reinterpret_cast

dynamic_cast: 支持运行时识别指针或引用所指向的对象。

const_cast:   转换去掉表达式的const 性质。 EX: 
                                                                      const char* pc_str;
                                                                      char *pc = string_copy(const_cast<char *>(pc_str));


static_cast : 编译器隐式执行的任何类型转换都可以由static_cast 显示完成。
                    可通过static_cast 将存放在void* 中的指针值强制转换成原来的指针类型。
                    EX:  void *p = &d;
                           double *dp = static_cast<double*>(p);

reinterpret_cast:为操作数的位模式提供较低层次的重新解释。 用来处理无关类型之间的转换,会产生一个新值,这个值会有与原始参数(expression)有完全相同的比特位。 大多数用于指针类型之间的交换。
reinterpret_cast  的用法还不是很清楚~~~~

-----六章-----------------------------------------------------------------------------------------------------------------------------------------------------------

switch 表达式是 case 标号不能单独出现,其后面一定要有语句,如果没什么操作,就用空语句 (  ;  // null statement)
case 标号必须是整型常量表达式;而且不能两个标号具有相同的值;

注意: 在循环条件中定义的变量在每次循环里都要经历创建和撤消的过程。

goto 语句和获得所转移的的控制权带标号的语句必须位于同一个函数内。

函数在寻找处理代码的过程中退出。
     抛出一个异常后,首先搜索的是抛出异常的函数,如果没有找到匹配的catch,则终止这个函数的执行;并在调用这个函数的函数中寻找匹配的catch,如果依然没有,则继续终止;依此类推,直到找到匹配的catch。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值