0、先上总结
- 指针是什么?指针是个数据类型,它里面存储的是个地址
- 如
int a=3;
,定义了一个int
类型的变量a,值为3
,它在内存中的地址为&a
- 同理,
int *b=3;
,定义了一个int*
类型的变量b,值为3
,它在内存中的地址为&b
- 进一步,
int *c=&a;
,定义了一个int*
类型的变量c,值为&a
,它在内存中的地址为&c
- 指针占多大内存空间?
- 指针变量占用的内存空间大小根据所使用的操作系统及编译环境而定
- 一般而言,计算机是几位,则指针大小就是几位,如我用的是64位,则指针就占64位(8字节)空间
- 如
- 指针常量是个常量,该常量的值是一个指针类型的值!它不能被修改
- 它可以指向一个变量,此时可以通过它修改变量的值
- 它可以指向一个常量,此时不可以通过它修改变量的值
- 常量指针是个指针。它指向一个常量,不能通过它求出修改那个常量。(指针是变量,它是个指针,故它的值可以被修改)!
- 它可以指向一个变量,此时不可以通过它修改变量的值
- 但可通过变量本身修改变量的值
- 它可以指向一个常量,此时不可以通过它修改变量的值
- 它可以指向一个变量,此时不可以通过它修改变量的值
1、指针常量
指针常量声明格式(做题时看到*放在const的前面即可判定)
int a;
//指针常量声明格式
int *const p = &a; //*放在const的前面(左侧)
//记忆:看“指针常量”这四个字,指针在常量前面,故*放在const的前面
int arr[10];//数组名arr就是一个指针常量
指针常量是一个指针类型的常量,上面的p是一个指向int类型的指针,p不可以被赋值、修改(因为它是常量)
数组名就是一个指针常量
2、常量指针
常量指针声明格式(做题时看到const放在*的前面即可判定)
int a;
//指针常量声明格式
const int * p = &a; //const放在*的前面(左侧)
//记忆:看“常量指针”这四个字,常量在指针前面,故const放在*的前面
标签:const,变量,int,C++,修改,指针,常量 From: https://www.cnblogs.com/FishSmallWorld/p/17108424.html