Con trỏ hằng
Con trỏ hằng là loại con trỏ có thể thay đổi được địa chỉ vùng nhớ mà nó lưu trữ, nhưng không thể thay đổi được giá trị của vùng nhớ thông qua con trỏ đó.
Cú pháp khai báo con trỏ hằng:
const <kiểu dữ liệu con trỏ> <tên con trỏ> = <địa chỉ>;
Có ví dụ sau:
int main() { int x = 7; int y = 13; const int *p = &x; // Con trỏ hằng *p = 100; // Báo lỗi p = &y; // Không báo lỗi return 0; }
Hằng con trỏ
Ngược lại với con trỏ hằng, hằng con trỏ là loại con trỏ không thể thay đổi được địa chỉ vùng nhớ mà nó lưu trữ, nhưng vẫn có thể thay đổi được giá trị của vùng nhớ đó thông qua con trỏ đó.
Cú pháp khai báo hằng con trỏ
<kiểu dữ liệu con trỏ> const <tên con trỏ> = <địa chỉ>;
Có ví dụ như sau để minh họa:
int main() { int x = 7; int y = 13; int *const p = &x; // Hằng con trỏ *p = 100; // Không báo lỗi p = &y; // Báo lỗi return 0; }
Mở rộng
Trong trường hợp muốn sử dụng một con trỏ vừa không thay đổi được địa chỉ vùng nhớ mà nó lưu trữ, vừa không thay đổi được giá trị của vùng nhớ đó, sử dụng hai từ khóa const
như sau:
const <kiểu dữ liệu con trỏ> const <tên con trỏ> = <địa chỉ>;