C语言中指针常量和常量指针的区别是什么
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要介绍了C语言中指针常量和常量指针的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中指针常量和常量指针的区别是什么文章都会有所收获,下面我们一起
千家信息网最后更新 2025年11月06日C语言中指针常量和常量指针的区别是什么
这篇文章主要介绍了C语言中指针常量和常量指针的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中指针常量和常量指针的区别是什么文章都会有所收获,下面我们一起来看看吧。
在面试中我们经常会被面试官问到什么是常量指针,什么又是指针常量。
指针常量就是指针本身是常量,指针里面所存储的内容(内存地址)是常量,不能改变。但是,对应内存地址里存的内容是可以通过指针改变的。
常量指针就是指向常量的指针,指针中所存地址中对应的值是常量,不能通过指针来修改它的值。但是,指针自身不是常量,它自身的值可以改变,从而指向另一个地址。
指针常量与常量指针的声明
指针常量的声明:数据类型 * const 变量名。
常量指针的声明:数据类型 const * 变量名 或者 const 数据类型 *变量名。
常量指针常量的声明:数据类型 const * const 变量名或者 const 数据类型 * const 变量名。
指针常量与常量指针的使用
1.指针常量例子
/*指针常量*//*声明方式*/ int a; int *const b = &a; //const放在指针声明操作符的右侧 /*例子*/int a=0,b=0; int * const p=&a; p = &b;//错误 *p = 5;//正确
2.常量指针例子
/*常量指针*//*声明方式*///1) const int *p;//2) int const *p; /*例子*/int a=0,b=0; int const *p=&a; p = &b;//正确 *p = 5;//错误
3.常量指针常量
/*常量指针常量*//*声明方式*/ const int a = 5; const int * const p = &a; //a值不变,b的指向也不能变 /*例子*/int b = 2;int a = 5;const int * const p = &a;p=&b;//错误 *p=2;//错误
例
int a = 5; const int b = 6; const int *c = &a; // c是指向整形变量a的常量指针 const int *d = &b; // d是指向整形常量b的常量指针 int *const e = &a; // e是指向整形变量a的指针常量 //int *const f = &b; //报错提示 无法将const int*赋值给 int * const int *const g = &a; // g是指向整形变量a的指针常量 const int *const h = &b; // h是指向整形常量b的指针常量 printf("a:%d b:%d\n*c:%d c:%d\n*d:%d d:%d\n*e:%d e:%d\n*g:%d g:%d\n*h:%d h:%d\n",a,b,*c,c,*d,d,*e,e,*g,g,*h,h); a=3; c=&b; //改变c的指向为b c值改变 *c改变 //*c=b; //报错*c是常量 d=&a; //改变d的指向为a d值改变 *d改变 //*d=a; //报错*d是常量 //e=&b; //报错 常量指针指向无法改变 *e=2; //此时a的值已经变为2 e值不变 *e改变也就是a值改变 //g=&b; //报错指针指向无法改变 //*g=1; //报错指向的地址中的值是个常量无法改变 //h=&a; //报错指针指向无法改变 //*h=1; //报错指向的地址中的值是个常量无法改变 printf("改变后\n"); printf("a:%d b:%d\n*c:%d c:%d\n*d:%d d:%d\n*e:%d e:%d\n*g:%d g:%d\n*h:%d h:%d\n",a,b,*c,c,*d,d,*e,e,*g,g,*h,h);程序的输出结果:

(可以尝试一下把代码中的*e=2注释掉会发生什么)
总结:
指针常量,指向地址不可变,地址中的值可通过指针改变
常量指针,指向地址中的值不可通过指针改变,指向可变
常量指针常量,指向和指向地址的值都不可通过指针改变
附加题
指向常量的指针常量该怎么写?
答案:
const int * const b = &a;//指向常量的指针常量
关于"C语言中指针常量和常量指针的区别是什么"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"C语言中指针常量和常量指针的区别是什么"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
常量
指针
指向
地址
变量
例子
数据
类型
语言
内容
错误
方式
知识
内存
就是
篇文章
可变
也就是
代码
价值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发找对口工作
织梦数据库优化
广州馍天网络技术有限公司
go分析的数据库
media视频服务器
行走喵星人总显示解析服务器异常
软件开发申报
北京水性软件开发发展现状
闵行区媒体数据库服务行业
工商银行网络安全隔离
数据库备份修改
朝阳群众网络安全
湖州市网络安全宣传
怎么查看数据库用户拥有哪些权限
如何看一个代码是否写入数据库
软件开发团队工作经验
帝国数据库字典
中兴ran开发是软件开发吗
16g内存云服务器
宜兴微型软件开发维修电话
校园网络安全个人总结
怎么设置数据库的安全
网络安全整体方案
数据库按季度取数
阿里云服务器自动休眠
jstree节点保存数据库
夺汇网络技术 面试
上海坎纭互联网科技有限公司
徐汇区创新软件开发厂家价格
软件开发公司主要投入费用