Browse Source

ft: c++相关添加

master
SisMaker 3 years ago
parent
commit
207b121f42
1 changed files with 36 additions and 0 deletions
  1. +36
    -0
      c++/数组指针指针数组常量指针指针常量.md

+ 36
- 0
c++/数组指针指针数组常量指针指针常量.md View File

@ -0,0 +1,36 @@
数组指针
定义 int (*p)[n];
()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。
指针数组
定义 int *p[n];
[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行p+1是错误的,这样赋值也是错误的:p=a;因为p是个不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。
1.常量指针
定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针。
声明:const int * p; int const * p;
注:可以将一个常量的地址赋值给一个对应类型的常量指针,因为常量指针不能够通过指针修改内粗数据。只能防止通过指针引用修改内存中的数据,并不保护指针所指向的对象。
2.指针常量
定义:指针常量是指指针所指向的位置不能改变,即指针本身是一个常量,但是指针所指向的内容可以改变。
声明:int * const p=&a;
注:指针常量必须在声明的同时对其初始化,不允许先声明一个指针常量随后再对其赋值,这和声明一般的常量是一样的。
总结:主要看的就是const所处的位置。
1)const 在*前:表示const修饰的为所申明的类型。常量指针 常量指针是指指向常量的指针
int const *p1 = &b; //const 在前,定义为常量指针
2)const 在*后:表示const修饰的为指针。指针常量 指针常量是指指针本身是常量
int* const p2 = &c; // *在前,定义为指针常量
3)前*后均有:表示const同时修改类型和指针。指向常量的指针常量

Loading…
Cancel
Save