C语言-指针常量和常量指针
一:结论
1.常量指针 :b的值不能变,但是b的地址能变
const int* b = &x;
2.指针常量:p的地址不能变,但是p的值能变
int* const p = &y;
3.巧记口诀
星在(const)前,值变;
星在(const)后,址变;
4.读作pointer to,从右往左翻译
4.1、const int b = &x;
英文:b is pointer to int const.
中文:b 是指针,这个指针指向整型常量。
4.2、 int* const p = &y;
英文:const p is pointer to int.
中文:常量p是指针,这个指针指向整型。
5.*解引用和定义指针
《C语言-指针-解引用操作符和定义指针》
二:const关键字
在c语言中,const关键字用于定义常量。
常量是指其值在程序执行期间不能被修改的变量,const可以修饰各种数据类型,包括整数、浮点数、字符和字符串以及指针。
const可以修饰指针类型,使指针指向的内容成为只读,但指针本身可以修改。
const int a = 5;//已经定义了a=5
a =10;//此时会报错,因为常量a已经被赋值,无法再次赋值
三:常量(const)指针(pointer)
1.常量指针 :b的值不能变=b地址指向的数值不能变,但是b的地址能变
const int* b = &x;//
&x = 0x61;//在内存中x分配到的地址
*b = 2;//b是指针,*b是一个数值
2、自然语言-英文-中文
const int* b = &x;
英文:b is pointer to int const.
中文:b 是指针,这个指针指向整型常量。
3.const 修饰(int* b)这一块,此时b是指针,(* b)就是一个具体的值(解引用),所以*b此时不变。
四:指针(pointer)常量(const)
1.指针常量:p的地址不能变,但是p的值能变(看成是指针名=元素首地址)
int* const p = &y;
&y = 0x61;//在内存中,y分配到的地址是0x61
*b = 2;//b是指针,*b是一个数值
2、自然语言-英文-中文
int* const p = &y; //*读作pointer to,从右往左翻译
英文:const p is pointer to int.
中文:常量p是指针,这个指针指向整型变量。
3.const 修饰 p,那么指针p的地址不能变(*p是数值,p是指针)
五:聪明B友
总结:const靠谁近,谁就硬,谁就不能被改变。
推荐视频:
1.https://www.bilibili.com/video/BV1xN4y1V75n/?spm_id_from=333.337.search-card.all.click&vd_source=761a4bd15f697c5f0d03eff06bd69b73
2.https://www.bilibili.com/video/BV1qy4y1e7ds/?vd_source=761a4bd15f697c5f0d03eff06bd69b73
以上,完