JavaScript is required

What is output ? #include #include #include #include void myfunc(char** param) { ++param; } void main() { char* string = (char*)malloc(64); strcpy(string, "hello_World"); myfunc(&string); myfunc(&string); printf("%s\n", string); getch(); }

A.

hello_World

B.

ello_World

C.

llo_World

D.

lo_World

Trả lời:

Đáp án đúng: A


Đoạn code này kiểm tra sự hiểu biết về con trỏ và cách chúng hoạt động trong C. Hàm `myfunc` nhận một con trỏ đến con trỏ (`char** param`). Khi bạn truyền `&string` vào `myfunc`, bạn đang truyền địa chỉ của con trỏ `string`. Tuy nhiên, trong hàm `myfunc`, `++param` chỉ làm tăng con trỏ `param` (con trỏ cục bộ trong hàm), chứ không làm thay đổi giá trị của `string` bên ngoài hàm. Vì vậy, việc gọi `myfunc` hai lần không hề ảnh hưởng đến giá trị của `string`. Do đó, `string` vẫn giữ nguyên giá trị ban đầu là "hello_World".

Câu hỏi liên quan