JavaScript is required

Chọn kết quả hợp lý cho chương trình sau:

void main() {

struct sv {

float d;

char ht[10]

};

struct sv m, *p;

p = &m;

printf("%p", &m);

printf("%p", p);

};

A.

“FFE6FFE6”.

B.

“FFE6FFE7”.

C.

“FFE66EFF”.

D.
Kết quả khác. (“FFE4FFE4”).
Trả lời:

Đáp án đúng: D


Chương trình C này in ra địa chỉ của biến `m` và giá trị của con trỏ `p`. Vì `p` được gán bằng địa chỉ của `m` (`p = &m`), cả hai lệnh `printf` sẽ in ra cùng một địa chỉ. Tuy nhiên, các địa chỉ được in ra sẽ phụ thuộc vào hệ thống và trình biên dịch đang sử dụng. Trong các lựa chọn được đưa ra, “FFE6FFE6” là kết quả hợp lý nhất vì nó thể hiện địa chỉ bộ nhớ ở dạng hex và cả hai giá trị in ra là giống nhau. Các lựa chọn khác không hợp lý vì chúng đưa ra hai địa chỉ khác nhau (FFE6FFE7, FFE66EFF) hoặc một địa chỉ khác (FFE4FFE4), điều này không đúng vì `p` trỏ đến `m`.

Câu hỏi liên quan