const char*和char* const

本文详细解释了const char*和char*const两种指针类型的区别,前者为指向常量的指针,后者定义了指针常量。通过实例展示了如何正确使用这两种类型,并强调了它们在修改内存内容方面的不同限制。

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

const char*char* const

1、const char*

const char*类型是指向常量的指针,注意此时const所在的位置:在“*”的前面。constchar的前面或后面都是一样的,但通常将const放置在char的前面,对一个利用const char*类型定义的常量指针来说,不能修改其指向内存中的内容,但可以修改其指所指向的内存地址。const char*类型的使用方法如下:

char ch[5] = "lisi"

const char *pStr = ch; 

第二行定义了一个指向常量的指针变量:pStr然后用已定义的字符数据ch给这个变量赋值。相当于将这个数据的首地址赋给了这个变量,因为对于利用const char*类型定义的指向常量的指针变量,不能修改其指向的内存中的内容,但可以修改其本身的值,即变量所保存的内存地址,因此对于pStr来说,这个指针变量的值是可以修改的,而其指向的对象(即数据中的元素)被看做是常量,不能够被修改。

2、char* const

char* const类型定义的是一个指针常量,他的使用方法有

char ch[5] = "lisi"

char *const PSTR = ch; 
利用char* const类型定义了一个指针常量:pStr,然后同样用字符数组给这个指针常量赋值,相当于将字符数组的首地址赋给了指针常量

注意此时const的位置:在“*”的后面,但在所定义的指针名称的前面,这种定义形式表明定义了一个指针常量,要注意的是,对于指针常量,必须在其定义的同时赋值,指针常量表示指针本身是常量,因此对于pStr来说,其值是一个指针常量,是不能够修改的。

总结:

const char*类型的指针(指向常量的指针)其所指向的内容是常量,是不可以修改的,但其指针值是可以修改的。

但对于char* const类型的指针(常量指针)来说,它的地址是一个常量,也就是说,它的指针值是常量,不可以修改,但其指向的内容是可以修改的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值