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
Chương trình khai báo một biến nguyên `x` và một con trỏ `p` trỏ đến kiểu nguyên. Ban đầu, `x` được gán giá trị 3, sau đó gán lại giá trị 6. `p` được gán địa chỉ của `x`. Khi `*p = 9;` được thực thi, giá trị tại địa chỉ mà `p` trỏ tới (tức là `x`) sẽ thay đổi thành 9. Do đó, các lệnh `printf` sẽ in ra giá trị 9 ba lần.
Phân tích chi tiết:
1. `int x, *p;`: Khai báo biến `x` kiểu `int` và con trỏ `p` trỏ đến kiểu `int`.
2. `x = 3; x = 6;`: `x` được gán giá trị 3, sau đó được gán lại giá trị 6.
3. `p = &x;`: `p` trỏ đến địa chỉ của `x`.
4. `*p = 9;`: Giá trị tại địa chỉ mà `p` trỏ tới (tức là `x`) được gán giá trị 9. Như vậy `x` bây giờ có giá trị là 9.
5. `printf("%d", x);`: In ra giá trị của `x` (là 9).
6. `printf("%d", *p);`: In ra giá trị mà `p` trỏ tới (tức là giá trị của `x`, là 9).
7. `printf("%d", x);`: In ra giá trị của `x` (là 9).
Kết quả in ra màn hình là "999".