const char* ptr、char const* ptr、char* const ptr 小结

一、const char * ptr;
定义一个指向字符常变量的指针,这里,ptr是一个指向 const char* 类型的指针变量,所以不能用ptr来修改所指向的内容,换句话说,*ptr的值为const,不能修改。但是ptr的声明并不意味着它指向的值实际上就是一个常量,而只是意味着对ptr而言,这个值是常量。实验如下:ptr指向str,而str不是const,可以直接通过str变量来修改str的值,但是不能通过ptr指针来修改。(*ptr不能作左值,但是ptr可以作左值)

在下面这种情况下char* ptr和const char* ptr等效

char *a="214124";这种是无法修改的,因为这个字符串是存放在内存的常量区 (char*相当于constant char*)

char a[]="asdas";  这个是可以修改的,因为这个字符串是存放在栈中的

二、char const *ptr;
此种写法和const char *等价

三、char * const ptr;
定义一个指向字符的指针常数,即const指针,实验得知,不能修改ptr指针,但是可以修改该指针指向的内容。(ptr不能作左值,但是*ptr可以作左值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值