服务器之家

服务器之家 > 正文

C语言关键字const和指针的结合使用

时间:2021-08-17 12:53     来源/作者:GDOU-Linkk

我们先定义三个变量

1、const int *p1
2、int const *p2
3、int *const p3
p1、p2、p3这三个指针都是指向int类型的,那它们有什么区别呢

写个代码测试一下


C语言关键字const和指针的结合使用

编译一下


C语言关键字const和指针的结合使用

可看到第11,12,16行报错,从中可得出以下结论:

const int * 与 int const *是一样的效果,指向的内存是不能改变的,即指针指向的内容是只读的,或者说是一个常量。不过指向的位置是可以更改的,即p1和p2可以重新指向别的常量。

而char *const 刚好相反,表示指针的内容是只读的,即指针指向的位置是不可修改的,但是指针指向的内存是可读可写的。

如果指向的内存和位置都是不能改的呢?

哈哈哈,肯定都能想到,

int *const const pointer 与 const int *const pointer 都是可以的。

那如果const和typedef一起用会怎么样?

//先定义个新类型
typedef int *intp;
const intp p1;
intp const p2;

p1和p2,哪个指向的位置不能变,哪个指向的内存不能变呢?

答案是:p1和p2是一样的,都是指向的位置不能变,即如果指向了a,就不能再指向b。

所以如果想指向的内容不能变,就不能用typedef来定义新类型了。
下面是验证代码和编译结果


C语言关键字const和指针的结合使用

C语言关键字const和指针的结合使用

总结

以上所述是小编给大家介绍的C语言关键字const和指针的结合使用,希望对大家有所帮助!

原文链接:https://blog.csdn.net/weixin_45523734/article/details/104364825

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部