C语言中关键字const

前言

       今天要讲的是关键字const,constant在英文里有恒定的,不变的意思,在C语言中,const关键字用于声明一个变量为常量,即这个变量的值在初始化之后就不能被修改,const 修饰的变量在程序运行期间保持其值不变,这有助于保护数据,防止意外修改,并提高程序的可读性。

基本使用

const 修饰基本类型变量

下面是一个const修饰int a 的一个示例;

#include <stdio.h>  
  
int main() {  
    const int a = 100; // max 是一个常量,其值不能被修改  
    // a = 200; // 这行代码会导致编译错误  
  
    printf("a = %d\n", a);  
    return 0;  
}

如果你尝试修改a的值的话,就会被编译器阻止。

const 修饰指针

当你使用 const 修饰指针时,有两种常见的用法:

  • 指向常量的指针(const 在 * 左侧):这意味着指针指向的值不能被修改。
  • 常量指针(const 在 * 右侧):这意味着指针本身不能被修改(即不能指向另一个地址)。
指向常量的指针
const int *ptr;

这表示 ptr 可以指向一个 int 类型的常量,但你不能通过 ptr 修改它所指向的值。

常量指针
int * const ptr;

这表示 ptr 是一个指向 int 的常量指针,即 ptr 的值(即它所指向的地址)不能被修改,但你可以修改它所指向的值。

指向常量的指针 示例
#include <stdio.h>  
  
int main() {  
    const int num = 10;  
    const int *ptr = &num;  
  
    // *ptr = 20; // 这会导致编译错误,因为 *ptr 是常量  
  
    printf("*ptr = %d\n", *ptr);  
    return 0;  
}

注意;

  • const只影响变量的可修改性,不影响它的生命周期或作用域。
  • const指针和指针const是不同的概念。const指针指的是指针本身的值(即指向的地址)不可变,而指针const指的是指针指向的内容不可变。
  • const的作用范围可以限定在函数参数、局部变量、全局变量或数组元素上。
  • 在多线程环境中,仅仅使用const并不能保证变量的线程安全。如果需要跨线程保护常量数据,可能需要使用其他同步机制。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值