c/c++字符const

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章