C语言 - 常量指针与指针常量

本文详细介绍了C语言中const关键字的用法,包括常量指针、指针常量及指向常量的常指针的概念、格式及应用场景。通过阅读本文,读者能够了解如何正确使用const提高程序的安全性和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


通常在C语言中我们会遇到许多 const 修饰的变量,我们有时候会分不清它们,不知道什么时候该用它们,常常会出现误用,不如把它们的用法总结下来,防止以后出错吧!

const关键字
  • 定义:const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以 提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。
常量指针
  • 定义:常量指针本质是指针,常量修饰它,表示这个指针是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。
  • 格式
    int num = 10;
    const int *ptr1 = #
    int const *ptr2 = #
    //可以赋值,因为指针本身是变量
    ptr1 = ptr2;
    //错误,不可以解引用后当左值,因为const修饰(int *)故指向的int型变量为常量不可修改
    *ptr2 = *ptr1;
    
    • 以上const写在int之前和写在int*之间的方式都正确,但习惯上常用第一种,表示更加明晰。
    • 指针本身的指向可以改变,但是指向的内容不可修改,只读。
  • 常见用法:通常用于参数传递过程中,如果被传入的参数的值在函数执行期间不希望被修改可以使用const 修饰已达到安全的目的。
指针常量
  • 定义:指针常量的本质是一个常量,并且使用指针来修饰它,那么说明这个常量的值应该是一个指针。
  • 格式
    int num = 10int* const ptr = #
    //可以赋值,指针常量指向的值并不一定是常量
    *ptr = 11;
    //不可以赋值,指针常量本身的指向不可改变,其值为常量
    *ptr = #
    
  • 常见用法:一般指针常量用于指向不会发生变化的指针,但是用法并不常见。
指向常量的常指针
  • 相当于常量指针和指针常量的结合,格式 const int * const ptr = &num,相当与有一个指向不可修改的指针指向了一个不可修改的常量,在实际coding中很少使用。
总结 :const 修饰谁,谁就不变

【参考】:百度百科-const

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值