C++Primer学习笔记二(4数组和指针+5表达式)

第四章 数组和指针
1.int *p = & ia[2];
int *k = p[-2];   正确

2.const size_t arr_sz = 5;
  int int_arr[arr_sz]={0,1,2,3,4};
  for(int * pbegin = int_arr,*pend = int_arr+arr_sz;pbegin!=pend;++pbegin)
  cout<<*pbegin<<' ';
  for(vector<int>::iterator tier =ivec.begin();iter!=ivec.end();++iter)
  *iter=0;
 
3.const double pi = 3.14;
  double * ptr = &pi;  错!
  
4.typedef string * pstring;
  const pstring cstr;//等价于  string * const cstr;
  
5.strcmp(str1,str2)  等效于str1-str2形式
  strlen(str)  统计长度不包含'\0'
  
6.int *pia2  = new int[10];   //未初始化
int *pia3  = new int[10](); //已初始化

7.vector <T> v1; //空vector
vector <T> v2(v1); //用v1初始化v2
vector <T> v3(n,i); //用n个i初始化v3
  vector <T> v4(n); //n个初始化元素的v4
  vector <int> v5(int_arr+1,int_arr+4); //用int_arr[1]~int_arr[5]初始化v5


第五章 表达式
1.21%8 = -5;
21%-5= 1或者-4;编译器决定

2.尽量用++i而不是i++,因为前者需要使用一个临时变量保持之前值。


3.解引用操作符优先级低于点操作符,所以
*p.add()等价于*(p.add());
(*p).add()等价于p->add()


4.sizeof()不计算表达式


5.结合属性与优先级
::域运算符
.成员运算符;->成员;[]下表;()函数调用
++后自加;--后自减;显示类型转换
sizeof();++前自加;--前自减;~取非;!取反;-/+正负号;*解引用
    &取址;()类型转换;new/delete/delete[]开辟动态内存;
->*;.*;
*乘;/除;%求余;
+加;-减;
<</>>位移;
<;<=;>;>=比较
==;!=
&位与
^位异或
|位或
&&逻辑与
||逻辑或
?:
=赋值;*=;/=;%=;+=;-=;<<=;>>=;&=;|=;^=;
throw抛出异常
,逗号


6.计算||和&&时,当仅当右操作符能影响结果时才会计算右操作数


7.C++保证删除null/0指针安全。


8.const对象不可以修改,但是可以删除。


9.dynamic_cast 支持运行时识别指针或者引用所指向对象
const_cast 去除const属性
static_cast 等效于编译器隐式执行类型转换
  reinterpret_cast通常为操作数的位模式提供较低层的重新解释,也就是说将数据以二进制存在形式的重新解释
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值