【发布时间】:2015-01-05 00:04:28
【问题描述】:
#include <stdio.h>
void stringcopy(char *, char *);
int main(void)
{
char *a="akash";
char *b;
stringcopy(a,b);
printf("%s",b);//why this is null?
return 0;
}
void stringcopy(char*a,char*b)
{
b=a;
printf("%s\n",b);// it is not null
}
块引用 在函数 stringcopy 中,我得到了正确的输出。但打电话后我在 main.why 发生了?请解释一下?
【问题讨论】:
-
在 main 中,您不会看到更改,因为您只是在
stringcopy范围内更改bstringcopy -
我猜这是因为在 stringcopy 函数中复制了函数参数。所以你需要传递一个指针来修改它们。
标签: c arrays string function pointers