c语言基础知识:浅谈const

const含义

        const含义是不变的、恒定的,在c语言中可以理解为“只读”,不希望试图对其进行修改(赋值),但在某些情况下可以对其间接修改。

        在这层意义上来说,const就不能等同于常量,常量是不能变的,变不了的。
 

int main(){
	const int ca = 1234;//当在局部作用域时用const定义变量,以下操作可以间接修改变量的值
	//ca = 1234;  //直接赋值肯定不行 编译器不通过
	int *p = (int *)&ca;
	*p = 5678;    //直接拿到变量的内存地址 修改内存地址中的数据 
	//ca变成了5678
	return 0;
}

const作用

        const修饰普通变量,表示该变量只读。

        const与指针

const char * ps1;  //const修饰*ps1   *ps1只读     指针变量ps1可以赋值
char const * ps2;  //const修饰*ps2   *ps2只读     指针变量ps2可以赋值
char * const ps3;  //const修饰指针变量ps3  ps3只读    *ps3可以赋值(只是编译器允许)
const char * const ps4;  //第一个const修饰 *ps4   第二个const修饰ps4   *ps4,ps都只读


char *const ps5 = "hello";  //const修饰ps5   
*ps5 = 'x';                 //编译器允许  编译不会报错    但是运行一定段错误

char str[100] = "hello";
char *const ps6 = str;       
*ps6 = 'y';                 //编译器允许  编译不报错  运行也没有问题

        指针常量 与 常量指针

                指针常量 本质是常量 指针是一个常量 ps3

                常量指针 本质是指针 指针指向一个常量 ps1 ps2

                常量指针常量 ps4

        const修饰指针形参

        经常看到指针作为形参类型时,有一个const修饰,这是为了防止实参地址中的数据在函数内部被意外地修改。用于增强代码的健壮性和可读性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值