Trong C/C++, biến const không thể thay đổi sau khởi tạo. Ở đây ta xem cách thay đổi giá trị biến const.
Gán trực tiếp cho const gây lỗi compile-time.
Ví dụ lỗi
#include <stdio.h>
int main() {
const int x = 10;
printf("x = %d\n", x);
x = 15; // lỗi
printf("x = %d\n", x);
return 0;
}
Kết quả
[Error] assignment of read-only variable 'x'
Để thay đổi, dùng con trỏ. Con trỏ trỏ tới x, cập nhật qua con trỏ sẽ không lỗi.
Ví dụ sửa qua con trỏ
#include <stdio.h>
int main() {
const int x = 10;
int *ptr;
printf("x = %d\n", x);
ptr = &x;
*ptr = 15; // Cập nhật qua con trỏ
printf("x = %d\n", x);
return 0;
}
Kết quả
x = 10 x = 15