Hai định nghĩa và ví dụ sau đây sẽ giúp bạn hiểu rõ hơn về bản chất của
- Con trỏ hằng
- Hằng Con trỏ
Con trỏ hằng
Là con trỏ trỏ đến vùng dữ liệu hằng. Ta ko thể thay đổi giá trị mà nó đang trỏ đến. Nhưng có thể
thực hiện tăng giảm địa chỉ con trỏ hay cho nó trỏ đi nơi khác.
Khai báo:
const int* p;
Ví dụ:
void main()
{
int x =5;
int y = 10;
int *q;
q = &y;
const int* p = &x;
*p = 6; // lỗi biên dịch
p = q; // OK
}
Hằng con trỏ:
Là 1 con trỏ nếu trỏ vào 1 ô nhớ nào đó. Thì nó sẽ nằm “dính chặt” vào ô nhớ đó. Ta không thể
cho nó trỏ đi nơi khác và tăng giảm địa chỉ của con trỏ. Nhưng ta có thể thay đổi được giá trị mà nó trỏ đến.
Khai báo:
int* const p;
Ví dụ:
void main()
{
int x =5;
int y = 10;
int *q;
q = &y;
int* const p = &x;
p = &q; // ERROR
*p = 6; // OK
}