这里我们定义了一个结构体 第一种方式指向data区
struct student s; s.number=10; s.score=20; strcpy(s.name,"mike"); printf("%d %s %d\n",s.number,s.name,s.score);前面的number和score都没有问题,这里我们将s.name用strcopy函数将文字常量区的“mike”字符串拷贝到s.name所指向的内存中去,因为name本身就是指针,字符串常量就是首元素地址,故而可以这样操作. 第一种方式的不同写法
struct student s; s.number=10; s.score=20; s.name="mike"; printf("%d %s %d\n",s.number,s.name,s.score); struct student *s; s->number=10; s->score=20; strcpy(s->name,"mike"); printf("%d %s %d\n",s->number,s->name,s->score);第二种方式指向栈区
struct student p; char buf[100]; p.number=10; p.score=1; p.name=buf; printf("%d %s %d",p.number,p.name,p.score);这里我们定义了一个字符型的数组,将name指向的栈区的buf 以上有些代码无法在dev通过,可以用gcc编译通过,不是代码有问题!!!