C语言中指针常量和常量指针的区别是什么
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了C语言中指针常量和常量指针的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中指针常量和常量指针的区别是什么文章都会有所收获,下面我们一起
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
喔噻互联网科技有限公司
科技服务与互联网
平安科技 互联网
亿策互联网科技
宜安科技 互联网金融
睿民互联网科技
互联网科技logo
顺玮阁互联网科技
滨湖区互联网智能科技产品供应
阿里巴巴算科技企业还是互联网
互联网经济与金融科技
福建科技产业互联网发展
互联网5g黑科技有哪些
畅思互联网科技
小米互联网科技园入驻
互联网相关科技技术
抖集互联网科技技术咨询
中国互联网公司的科技投入
恒生科技互联网指数十大成分股
如何强化互联网金融科技
互联网黑科技
唐信互联网科技
重庆威客帮互联网科技
湖南诚度互联网科技有限公司
杭州壁岐互联网科技有限公司
世界互联网领先科技成果获奖
山东大美朱楼互联网科技有限公司
互联网科技新闻
互联网界的黑科技
悟空问答互联网科技