指针

double dvalue;

double *dtval=&dvalue; //初始值是 地址

double *dtpnt=dtval; //   初始值是 指针

空指针、野指针。

int *p=0 //合法

引用(一定要被初始化,而且不是对象,不能定义引用的引用)

int ival=1024;

int &refVal= ival;

书写习惯的差异而已:

int* p1,p2 //p1是指针,p2是int型

int *p1 与之等价啦

指向指针的指针

int i=0;

int *pi=&i;

int **ppi=π

不存在指向 引用 的 指针  

但存在指向 指针 的 引用

int i=911;

int *p;

inr *(&r)=p;  //r是指向指p的引用

r=&i; //即 令p指向i

*r=0;// 将p所指的对象,即i=0

const变量:定义为仅在文件内有效 但不同的文件中出现了同名的const变量,==在不同文件中定义了独立的变量

(目测复试时被老师问过这个。。当时脑子没转过来。之前用到过)

extern 可以帮助解除这个烦恼,实现共享。

const 指针,==指针是对象  

double pi=3.14159

double *const pip=π // 指针pip 是一个常量指针  能否修改所指对象的值与pip无关,只依赖于所指对象的类型。

//这是 顶层const,pip指针本事是个常量

介绍了一个限定符constexpr,指针时,仅仅对指针有效,对指针所指的对象无影响。P60

 

typedef 别名

typedef double wage;

typedef double base ,*p; //表示base=double ,p=double* 

typedef与const的结合

typedef char *pstring; //即pstring=char*

const pstring cstr=0; //这相当于* const p 而不是const *p

//表明cstr是常量指针,而非指向常量字符的指针  我的“理解”是const 指针 cstr=0

预处理器的概念:

#ifndef A_H    // 如果没有定义

#define A_H   //那就定义呗

........

#endif            //判断结束咯

 

 

明天开始变难了。。我可能就不看了。哼哼。先保存一篇吧。。

哈哈。。。睡觉觉去咯。