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.