第一种:const 类型 *指针名=某个地址
这种类型特点:该常量指针指向的数据不能修改,但可以让它指向其他的地址,因为const定义的是指针,*str的值为const,不能修改,代码里修改的是字符串,如果你修改str[2]这种的值,就会报错。
例题:
#include <stdio.h>
#include <stdlib.h>
int main()
{
//声明一个名为str的指针变量
const char *str="I am using code Blocks!\n";
#if(0)
str[2]='L'; //语句错误
#endif
str="I am studying C and using const!\n"; //合法
printf("%s\n",str);
return 0;
}
运行结果:
第二种:类型* const 指针名=某个地址
这种类型特点:该常量指针是一个固定指针,不可以改变它的值(不能让它指向其他的地址),但它所指的数据可以改变
如果是char* const是可以通过修改str[]修改值的,但是不能str=“”。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* const str="I am using code Blocks!\n";
str[0]='m';
#if(0)
str="I am studying C and using const!"; //非法
#endif
printf("%s\n",str);
return 0;
}
若把那个非法的语句放开,则结果如下: