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指針所指向的內容