指標常量與常量指標
阿新 • • 發佈:2021-06-17
程式碼如下:
#include <iostream> void RefConst() { char greeting[] = "Hello world!"; // ---- (0) char* p = greeting; // non-const pointer, non-const data const char* p = greeting; // non-const pointer, const data (常量指標、指向常量的指標: *p,即'指標指向的值'為const,不能修改) ---- (1) char* const p = greeting; // const pointer, non-const data (指標常量、指標修飾的常量: 指向字元的指標常數,即const指標,不能修改p指標,但可修改p指標指向的內容) const char* const p = greeting; // const pointer, const data } int main() {} /* (0) 如果用const定義char型別的greeting字串,下方的 “char* p = greeting; ” 將會報錯無法編譯通過,∵不是常量接收; 而當沒有用常量定義的額時候下方可以任選,可以定義新的變數並定義成常量,這意味著變數可以常量,但常量不能為變數; (1) p指向greeting,而greeting不是const,可以直接通過greeting變數來修改greeting的值,但卻不能通過p指標來修改; const char* p 等價於 char const* p; */
作者:艾孜爾江