本系列讲述指针的文章一共分为六篇文章
目录如下:
一、c++中指针的定义以及写法
二、定义变量时的内存分配
三、指针与数组名的关系
四、常量指针与常量指针
五、指针的指针
六、指针和引用
好了,按照这个顺序开启探索c++指针之旅~
一、c++中指针的定义
int *p; //*号前有空格,可以是任意个空格
int* p; //*号后有空格,可以是任意个空格
int*p; //*号前后都没有空格
int * p; //*号前后都有空格,可以是任意个空格
上述四种写法编译都没有错误,在定义中的 * 号我们现在可以理解为这仅仅代表定义了一个指针变量p, p的类型是 int * 或者 int* 。
之后要讲到 * 的 “取地址中的内容” 这个意思,那么这个 * 号和定义中使用的 * 号,是一个意思么?
为了更好的理解这个问题, 定义变量时的内存分配 的末尾 * 号的讲解 以及 六、指针与引用。
所以当我们定义指针时,我们不用过多担心是不是要满足严格的格式要求。
当定义一个指针的指针时,写法要满足严格的格式要求吗?
int **p; //只要在定义的代码中出现两个*就好,与int与*之间有多少空格,*与*之间有多少空格,*与p之间有多少空格没有关系
答案是不需要满足严格的格式要求的。
总结:
1、在定义的代码中,有一个*代表指针,有两个*就代表指向指针的指针,有三个*就代表指向指针的指针的指针~~~(现在不明白没关系,在第四篇文章中会说到)
2、虽然不要求满足严格的格式要求,但是我们要知道定义的指针的类型是 int * 或者是 int* 类型(这两种写法都可以)。根据指针的类型的写法我们是不是可以更好的理解上边各种各样形式的正确性呢?
3、int *p;实质上是定义了一个变量,这个变量的类型是 int * ,我们定义的指针p实质上是一个变量