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

我们先定义三个变量

1、const int *p1

2、int const *p2

3、int *const p3

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

写个代码测试一下

56559605f9eb85127b3976d2b26a1359.png

编译一下

34a0e71b78415131699fa6515a9c94de.png

可看到第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来定义新类型了。

下面是验证代码和编译结果

407fd05f12795cac789aa75ac5dbbd21.png

ea8a371a7706833ea90e7aef0e0b0574.png

总结

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

您可能感兴趣的文章:C语言中const与指针使用方法总结

C语言中const,volatile,restrict的用法总结

C语言 volatile与const同时使用应注意的问题

解析C语言中如何正确使用const

C语言编程技巧 关于const和#define的区别心得

C语言中的指针以及二级指针代码详解

C语言指针详解及用法示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值