一道C语言题 关于指针作为函数参数

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:46:14
void changeStr(char*);
int main()
{
char a[] = "abcd";
changeStr(a);
printf("%s\n",a);
system("pause");
}
void changeStr(char* str)
{
str = "ABCD";
}

为什么结果是abcd?????

str = “ABCD”
这个操作是把“ABCD”的地址给了str,而不是改变str指向的东西,就这么回事。
举个形象的例子:
有两个盒子,一个盒子放的是苹果,一个是梨
A知道苹果盒子的位置,然后A告诉B苹果盒子的位置,B什么也没干,他直接去拿了梨就闪人了,然后A去他知道的位置拿了盒子,你说他拿的是什么?