【发布时间】:2018-03-23 14:42:25
【问题描述】:
我想知道为什么下面程序的预期输出不是“hai”
#include<stdio.h>
#include<conio.h>
void first(char*);
void first(char *s)
{
printf("%u",s);
s="hai";
}
int main()
{
clrscr();
char *t ="welcome";
printf("%u",t);
first(t);
printf("%s",t);
getch();
return 0;
}
得到的输出是 Welcome 而不是 Hai。
如果有人能详细解释一下会更有帮助吗?
【问题讨论】:
-
s="hai";改变的是本地指针,而不是调用者的指针 -
为什么会是“hai”?毕竟,您只能修改变量的本地副本。考虑从good C++ book 学习而不是随机编码。 SO 不是教程服务。
-
我不明白你能解释一下吗?
-
简短说明:指针没有什么特别之处。