网站开发用 c php,美橙表业手表网站,创意平面设计作品图片,网站建设人员职责分布目录
一、前言 二、const 的简单介绍 三、常量指针 #x1f50d;介绍与分析
#x1f4f0;小结与记忆口诀
四、指针常量 #x1f50d;介绍与分析 #x1f4f0;小结与记忆口诀
五、总结与提炼
六、共勉 一、前言 在【C/C】的编程中#xff0c;指针与const关键字的组合…目录
一、前言 二、const 的简单介绍 三、常量指针 介绍与分析
小结与记忆口诀
四、指针常量 介绍与分析 小结与记忆口诀
五、总结与提炼
六、共勉 一、前言 在【C/C】的编程中指针与const关键字的组合常常会引出大部分初学者的困惑比如我特别是学习到C 中的拷贝构造那里如果分不清【常量指针】与【指针常量】之间的含义与区别的话是相当的难受。所以本文旨在深入解析这两种声明的含义帮助大家准确的区分它们。 二、const 的简单介绍
首先来看看下面这段代码首先我定义了一个变量num为10然后又对其进行了一个赋值修改打印出来之后就是修改之后的值【相信这是最基本的认识】 int main(void)
{int num 10;num 20;printf(num %d\n, num);return 0;
} 但若是我可以修改num值的话别人也可以修改了这就没有了安全性。所以我想给它加上一把锁使得它无法被修改这里介绍一种C语言中的关键字【const】若是我们在定义变量的时候在前面加上一个const做修饰此时这个变量就会变成【常量】 const int num 10;可以看到在加上const常进行修饰之后这个变量就无法被修改了若是有人想要去修改的话编译器就会报出警告⚠ 知道了const 的含义之后接下去我们来说说有关【常量指针】和【指针常量】之间的区别 三、常量指针 介绍与分析
上面看到因为在定义num的时候前面加上了const常的修饰就使得它变成了一个常量无法被修改在指针初阶章节我有介绍过可以将一个指针进行解引用去修改这个指针所指向那块地址的值 int* p num;
*p 20;可以看到确实可以对其进行一个修改 那此时这个num的安全性就又降低了所以我想再做制裁使得指针也无法对其解引用进行一个修改
那么又需要使用上面所说的const修饰符也是和修饰num一个道理只需要在前面加上一个【const】作为修饰即可
const int* p num;可以看到此时我们通过指针解引用的方式也无法对其进行修改❌ 虽然是不可以通过指针解引用去修改这个指针所指向的值但是可以去修改这个指针的指向令其重新指向一个变量的地址这是合法的
const int num 10;
//num 20;
int num2 20;const int* p num;
//*p 20; //err
p num2;不过原理还是一样的我们无法通过这个指针进行解引用去修改它所指向的值 小结与记忆口诀 以上所描述的就是【常量指针】一起来总结一下 总结对于常量指针而言是将【const】放在*的左边表示的是指针所指向的内容不能通过指针来修改但指针变量本身可修改 口诀常量指针所指向的是一个常量不能修改但是指针本身不是常量可以修改
四、指针常量 知道了什么是【常量指针】接下去让我们来看看什么是【指针常量】 介绍与分析
刚才我们将const放在*的左边现在我们换个地方将它放在*的右边试试
int* const p num;此时若再去做这两步操作的时候你就会发现和【常量指针】完全不同可以通过指针解引同去修改指向的值但是无法再次修改指针的指向
*p 20;
p num2; //err小结与记忆口诀 以上所描述的就是【指针常量】一起来总结一下 总结对于指针常量而言是将【const】放在*的右边表示的是指针变量本身的指向不能修改但是指针指向的内容可以通过指针来修改 口诀指针常量这个指针本身就是一个常量不能修改但是指针所指向的内容不是常量可以修改
五、总结与提炼 最后我们来总结一下本文所学习的内容 对于【常量指针】而言是将const放在[*]左边的指针所指向的内容不能通过指针来修改但指针变量本身可修改 对于【指针常量】而言是将const放在[*]右边的指针变量本身的指向不能修改但是指针指向的内容可以通过指针来修改
六、共勉 以下就是我对常量指针与指针常量的深入解析与区分的理解如果有不懂和发现问题的小伙伴请在评论区说出来哦同时我还会继续更新对C的理解请持续关注我哦