const char * ptr
定义一个指向字符串常量的指针,这里,ptr是一个指向char类型的常量,所以不能用ptr来修改所指向的内容,换句话说,ptr的值是const,不能修改
char str[] = "asddfg";
const char * ptr = str;
for (int i = 0; i < 6; i++) {
printf("%c ",ptr[i]);
}
printf("\n");
//ptr[3] = 'x';//报错
str[3] = 'k';
for (int i = 0; i < 6; i++) {
printf("%c ", ptr[i]);
}
printf("\n");
结论:可以直接通过str变量来修改str的值,但是确不能通过ptr指针来修改
char const * ptr
等价于const char*
char * const ptr
定义一个指向字符的指针常数,即const指针。
char str[] = "hello world";
char ss[] = "sdsddgggggg";
char * const ptr = str;
for (int i = 0; i < 11; i++) {
printf("%c",ptr[i]);
}
printf("\n");
ptr[3] = 'z';
ptr = ss;//报错
for (int i = 0; i <11; i++) {
printf("%c", ptr[i]);
}
结论:不能修改ptr指针,但可以修改ptr指针所指向的内容