【发布时间】:2017-01-07 21:30:28
【问题描述】:
这是我的main.c:
#include <stdio.h>
void changeStuff(char *stuff){
stuff= "Hello everyone";
}
int main(int argc, char **argv) {
char *stuff;
changeStuff(stuff);
printf(stuff);
return 0;
}
当我构建这个时,我收到了这个警告:
warning: ‘stuff’ is used uninitialized in this function [-Wuninitialized]
当我运行这个程序时,什么都没有打印出来。
由于在声明后似乎无法定义没有值的char*,如何更改传递给函数的char* 的值?
【问题讨论】:
-
不,您只是更改了传递的指针的本地副本,这将被遗忘。
-
C 使用按值传递。
f(x)无法更改x。