如何在C语言中使用常量关键字

  介绍

如何在C语言中使用常量关键字?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们先定义三个变量

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

写个代码测试一下


如何在C语言中使用常量关键字

编译一下


如何在C语言中使用常量关键字

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

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

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

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

哈哈哈,肯定都能想的到,

int * const常量指针与const int *常量指针都是可以的。

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

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

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

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

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


如何在C语言中使用常量关键字

如何在C语言中使用常量关键字

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

如何在C语言中使用常量关键字