在C語(yǔ)言中,常量指針指向的是一個(gè)常量值,該值不能通過(guò)指針進(jìn)行修改。常量指針的聲明方式是將const關(guān)鍵字放在指針變量名之前。
以下是常量指針的使用示例:
const int* ptr; // 聲明一個(gè)指向常量整數(shù)的指針
int num = 5;
ptr = # // 指針指向變量num
printf("%d\n", *ptr); // 輸出指針?biāo)赶虻闹?,輸?
// *ptr = 10; // 錯(cuò)誤,不能通過(guò)常量指針修改所指向的值
const char* str = "Hello"; // 聲明一個(gè)指向常量字符的指針
printf("%s\n", str); // 輸出指針?biāo)赶虻淖址?,輸出Hello
// str[0] = 'h'; // 錯(cuò)誤,不能通過(guò)常量指針修改所指向的字符
const int* const ptr2 = # // 聲明一個(gè)指向常量整數(shù)的常量指針
printf("%d\n", *ptr2); // 輸出指針?biāo)赶虻闹?,輸?
// *ptr2 = 10; // 錯(cuò)誤,不能通過(guò)常量指針修改所指向的值
// ptr2 = &another_num; // 錯(cuò)誤,不能修改常量指針的指向
在上述示例中,ptr
是一個(gè)常量指針,它指向一個(gè)整數(shù)變量num
。由于ptr
是常量指針,不能通過(guò)*ptr
修改所指向的值。類似地,str
也是一個(gè)常量指針,指向一個(gè)字符串常量,不能通過(guò)str[0]
修改所指向的字符。
ptr2
是一個(gè)常量指針,同時(shí)也是一個(gè)常量,既不能通過(guò)*ptr2
修改所指向的值,也不能修改指針的指向。
總結(jié)來(lái)說(shuō),在C語(yǔ)言中,常量指針指向的值不能通過(guò)指針進(jìn)行修改,但可以指向不同的變量或常量。