【发布时间】:2014-04-17 09:31:21
【问题描述】:
我不擅长指针。
这是一个指针示例程序
int sample(){
char* a;
char* b;
char* *c;
a = &*c;
b = &*c;
*c = "abcd";
printf("a = %s\n",a);
printf("b = %s\n",b);
printf("c = %s\n",*c);
return 0;
}
编译时出现警告。
warning: assignment from incompatible pointer type
结果如下。
a =
b = abcd
c = abcd
有人告诉我为什么a 没有显示任何值,而b 显示与c 相同的值吗?
a 如何显示与c 相同的值?
【问题讨论】:
-
你用什么编译这个?因为我尝试过,它编译时带有 2 个警告,当我运行它时,它给了我一个分段错误。
-
为 *c 分配一些空间。将
a = &*c替换为a = *c和类似的 b。从一些可以帮助您想象正在发生的事情的好书中阅读 C 指针的基础知识。
标签: c string pointers char memory-address