const char*

以下内容在C语言是成立的:

1、const char* 与char const* 的不同

const char* cp;  //cp所指向的存储空间中的内容是不能通过cp指针去改变的
char const* cp;  //指针变量cp的内容是不变的,即指针cp只能始终指向一个地址

2、const char*使用注意事项

const char* cp;
char c='a';
cp=&c;
c='b';
printf("c=%c\n",c);

说明:以上代码是正确的,输出结果时“c=b”。

 

const char* cp;
char c='a';
cp=&c;
*cp='b';
printf("c=%c\n",c);

说明:以上代码时错误的,因为字符型指针变量cp在定义时限定其指向的内容是不能通过cp去改变的(const关键字限定)。编译时会报错。

通过上面两个例子可以得出:常量指针所指向的内容不能通过常量指针自身去改变,但可以通过其他指向相同地址空间的指针去改变。

3、char const*的使用注意事项

char str[10]="test";
char const* cp=str;
printf("%s\n",cp);

说明:以上代码时正确的,输出结果是“test”。

 

char str[10]="test";
char const* cp;
cp=str;
printf("%s\n",cp);

说明:以上代码时错误的,编译会报错。因为cp被定义为指针常量,并且常量是不可以在定义之后被赋值的,所以cp=str;这一句会出错。

通过以上两个例子可以得出:常量(包括指针常量)只能在定义时初始化。定义语句之后在赋值会出错。

 

注:在c++中,char const* 是可以正确使用的,有的参考处指出:c++只能写成char* chonst。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值