Kết quả của chương trình sau là gì:
#include
void main() {
int x, *p;
x = 3; x = 6;
p = &x;
*p = 9;
printf("%d", x);
printf("%d", *p);
printf("%d", x);
}
Trả lời:
Đáp án đúng: C
Đoạn chương trình khai báo một biến `x` kiểu `int` và một con trỏ `p` kiểu `int *`.
- `x = 3; x = 6;`: Giá trị của `x` được gán lần lượt là 3 rồi 6. Như vậy, sau hai lệnh này, `x` có giá trị là 6.
- `p = &x;`: Con trỏ `p` được gán địa chỉ của biến `x`. Điều này có nghĩa `p` trỏ tới `x`.
- `*p = 9;`: Giá trị tại địa chỉ mà `p` trỏ tới (tức là giá trị của `x`) được gán bằng 9. Vậy, `x` bây giờ có giá trị là 9.
- Các lệnh `printf` in ra giá trị của `x`, giá trị mà `p` trỏ tới (tức là `x`), và lại giá trị của `x`. Do đó, kết quả in ra sẽ là "999".