void myfunc(char** param)

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();

}

What is output?

A. hello_World

B. ello_World

C. llo_World

D. lo_World

Hướng dẫn

Chọn C là đáp án đúng

Xem lời giải

Xem lời giải

biến string sẽ chứa địa chỉ của chuỗi. &string là địa chỉ của biến con trỏ string (xem hình vẽ).

Khi truyền &string cho hàm myfunc(), thì param = &string (tức là con trỏ 2 chiều param trỏ tới địa chỉ của biến string).

Trong hàm myfunc(), phép toán ++*param = ++string làm thay đổi vùng nhớ mà string trỏ tới.

Tags: