C++ PRIMER读书笔记 之 数组与指针
来源:互联网 发布:开源网络代理服务器 编辑:程序博客网 时间:2024/06/06 09:36
CH4 数组和指针
数组
指针
1.声明指针的风格
宜采用 string *ps1,*ps2;
尽量不采用 string* ps1,ps2; // ps1是指针 但是ps2是string 容易混淆
2.指针可能的初值
三种状态之一 :
保存一个特定对象的地址;
指向某个对象后面的另一对象;
或者是0值,若是0值,表明它不指向任何对象。 int *pi = 0;
也可使用从C语言集成下来的预处理变量NULL,在头文件cstdlib中定义,其值为0.把指针初始化未NULL等效于初始化未0值。
如果可能的话,除非所指向的对象已经存在,否则不要定义指针,这样可以避免定义一个未初始化的指针。
如果必须分开定义指针和其所指向的对象,则将指针初始化未0。因为编译器可以检测出0值得指针,程序可判断该指针未指向一个对象。
3.指针于const限定符
指向const对象的指针:
理解为 “自以为指向const的指针” 不能通过此指针修改指向对象的值(指向的对象可能不是非const),指针本身指向能够改变。
const double pi = 3.14;
double dval = 3.14;
const double *cptr = π
cptr = &dval;
const指针:
指针本身的值不能改变,但指针所指对象的值能否修改完全取决于该对象的类型
int errNumb = 0;
int *const curErr = &errNumb;
指向const对象的const指针:
const double pi = 3.14159;
const double *const pi_ptr = π
既不能修改pi_ptr所指向对象的值,也不能修改该指针的指向。
4 指针与typedef
typedef string *pstring;
const pstring cstr;
cstr的类型是什么???(极易出错)
很多人认为 真正的类型是:
const string *cstr; 指向string类型的const对象 这是错误的
注意 声明const pstring 时,const 修饰的是pstring的类型,这是一个指针。因此该声明语句应该是把
cstr定义为指向string 类型对象的const指针,等价于
string *const cstr;
理解复杂的const声明 以后待整理
- C++ PRIMER读书笔记 之 数组与指针
- 《C++primer》读书笔记---数组和指针
- 《c++ primer》读书笔记--数组与指针
- c++primer阅读笔记之数组与指针
- c++primer笔记之数组与指针的一些总结
- 《C专家编程》读书笔记之 指针与数组
- C++ Primer 第四版读书笔记(三)之数组与指针
- 《C Primer Plus 5th》读书笔记-----指针和多维数组
- C++Primer--数组、指针
- 《C++primer》读书笔记——指针与typedef
- C++ Primer 读书笔记 数组和指针
- 【读书笔记】数组与指针
- C++Primer 数组和指针
- C++primer学习笔记第四章-数组与指针
- C++primer第四版第四章数组与指针
- c primer plus 指针与多维数组探究
- 《c与指针》读书笔记之第一篇
- C++Primer读书笔记之引用
- eclipse和hadoop2.3.0相连
- linux中man使用技巧
- cookie作用域(转)
- 视频门禁考勤
- 堆排序分析
- C++ PRIMER读书笔记 之 数组与指针
- Linux网络编程之高级并发服务器
- Android apk应用程序启动慢的问题
- plot函数的用法
- linux下搭建SVN服务器完全手册-很强大!!!!!
- 单链表Java实现
- Spring MVC 教程,快速入门,深入分析
- object is [darwin amd64 go1.2 X:none] expected [darwin amd64 go1.3 X:precisestack]
- 【OC学习-10】写一个复数相加的例子来谈谈OC的self是什么意思?