企业网站网站建设电话,南县网站开发,wordpress注册没有密码错误,网站策划需要具备什么文章目录#x1f4da;引言✒常量指针#x1f50d;介绍与分析#x1f4f0;小结与记忆口诀✒指针常量#x1f50d;介绍与分析#x1f4f0;小结与记忆口诀#x1f449;一份凉皮所引发的故事#x1f448;总结与提炼#x1f4da;引言 本文我们来说说大家很困惑的两个东西引言✒常量指针介绍与分析小结与记忆口诀✒指针常量介绍与分析小结与记忆口诀一份凉皮所引发的故事总结与提炼引言 本文我们来说说大家很困惑的两个东西【常量指针】与【指针常量】 首先来看看下面这段代码首先我定义了一个变量num为10然后又对其进行了一个赋值修改打印出来之后就是修改之后的值【相信这是最基本的认识】
int main(void)
{int num 10;num 20;printf(num %d\n, num);return 0;
}但若是我可以修改num值的话别人也可以修改了这就没有了安全性。所以我想给它加上一把锁使得它无法被修改这里介绍一种C语言中的关键字【const】这个我在初识C语言也有说到过若是我们在定义变量的时候在前面加上一个const做修饰此时这个变量就会变成【常量】这个就和Java中的final关键字是一个道理若是加上了这个关键字做修饰之后就要在定义的时候对其进行一个初始化并且后面不能去修改它的值
const int num 10;可以看到在加上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】的右边表示的是指针变量本身的指向不能修改但是指针指向的内容可以通过指针来修改 口诀指针常量这个指针本身就是一个常量不能修改但是指针所指向的内容不是常量可以修改
一份凉皮所引发的故事
可能还是有同学对它们之间的关系不太理解。没关系我们通过一个生活中的场景来介绍一下 现在这里有三行代码有一个常量num指针p里面保存了它的地址还有一个常量num2我们假设这个指针p为一个女孩num为一个男孩他是这个女孩的男朋友。有一天男孩陪女孩去逛街女孩看到路边有人在卖凉皮所以就想要男孩给他买一份凉皮吃可是呢男孩身上只有【10块钱】若是给女朋友买了凉皮自己就没钱用了于是说“不行不给你买凉皮有什么好吃的” 于是这个时候女孩就生气了就对男孩说“一份凉皮都不舍得给我买还算是我男朋友吗分手”于是看另一个男孩还不错就想去找另一个男孩【他身上有100块钱】于是这个时候男孩就不乐意了好不容易追到的女朋友不是靠钱怎么能说分手就分手呢不能分。此时它就做了一个动作在这个操作符[*]的前面加上了const作为修饰符我们来回顾一下前面的知识 这里的*p 0就相当于是指针通过解引同让num 0,那指的就是让男孩变得身无分文这里的p num2指的就是重新修改指针p的指向使其指向另一个值的地址。这就是【常量指针】 此时男孩意识到事情的严重性那个男的身上这么有钱万一被它拐走了。想了想还是去给她买吧一份凉皮罢了就和女孩说“行行行给你买但是你不可以换男朋友”。此时他就又做了一个动作在这个操作符[*]的后面加上了const作为修饰符去掉了前面的const 同理这里的*p 0就相当于是指针通过解引同让num 0,那指的就是让男孩变得身无分文这里的p num2指的就是重新修改指针p的指向也就是换一个男朋友。这就是【指针常量】 建议广大女性读者选择第二种男朋友若是想下面这样的就直接分手吧 在[*]的前后都加上了const修饰符那么既无法通过指针去修改所指向的值也无法修改指针的指向虽然这使代码变得非常安全但在还是没有这个必要╮(╯▽╰)╭要想一个男朋友连吃的都不给你买而且还不准你换男朋友强行霸占你这种情况还是赶紧分手吧 总结与提炼 最后我们来总结一下本文所学习的内容 对于常量指针而言是在[*]左边的指针所指向的内容不能通过指针来修改但指针变量本身可修改 对于指针常量而言是在[*]右边的指针变量本身的指向不能修改但是指针指向的内容可以通过指针来修改 最后感谢您对本文的观看如果学会了请给个三连哦❤️❤️❤️