【发布时间】:2014-07-13 05:03:24
【问题描述】:
这是我编写的使用指针从结构中打印出字符串的代码:
#include <stdio.h>
#include <stdlib.h>
struct xenon
{
int size1;
int marks[10];
char *w;
struct xenon *p;
} x1,x2;
main()
{
x1.size1=10;
x2.size1=6;
printf("%d\n",x1.size1);
printf("%d\n",x2.size1);
(*p).w="my word";
printf("%s\n",(*p).w);
printf("%s\n",x1.w);
}
现在我得到一个错误,说我没有在函数 main 中声明变量 p。但我声明时也应该是这样
x1.w="my word";
printf("%s",x1.w);
我还尝试在结构外部声明指针变量,但它仍然无法编译。 我如何声明指向结构的指针有问题吗?还是完全是别的东西?
【问题讨论】:
-
好吧,您已经定义了 x1 和 x2。所以你有 x1.p 和 x2.p 但它们没有在你的代码中初始化。例如,您可以设置 x1.p = &x2;
-
x1和x2是全局变量,所以它们存在。
标签: c pointers structure instance-variables