What is output of code? void main() { int x = 5; const int* p; p = &x x++; *p = 4; printf("%d", *p); getch(); }
Trả lời:
Đáp án đúng: D
Đoạn mã C này có một lỗi trình biên dịch. Dòng code *p = 4;
sẽ gây ra lỗi vì p
là một con trỏ trỏ đến một biến kiểu int, nhưng nó được khai báo là const int* p
, nghĩa là con trỏ này trỏ đến một giá trị kiểu int không đổi. Mặc dù x
không phải là một biến const, nhưng con trỏ p
được khai báo là trỏ đến một giá trị const, do đó, bạn không thể sử dụng con trỏ p
để thay đổi giá trị mà nó trỏ tới. Do đó, trình biên dịch sẽ báo lỗi khi cố gắng gán *p = 4;
.