当前位置: 代码迷 >> C语言 >> [求助]结构体的用法
  详细解决方案

[求助]结构体的用法

热度:175   发布时间:2006-01-04 19:39:00.0
[求助]结构体的用法

struct student
{
int num;
char name[20];
char sex;
int age;
};
struct student stu[3]={{101,"AA",'M',19},{102,"BB",'M',20},{103,"CC",'F',21}};
struct *p;

p=(struct student *)stu[0].name; /*这一步是不是把stru[0].name转换为结构体指针型,然后赋给P?*/

我想输出:
AA M 19
BB M 20
CC M 21
请问该怎样做?

搜索更多相关的解决方案: 结构体  用法  name  num  

----------------解决方案--------------------------------------------------------

你的结构指针变量定义好像有问题.
应这样struct student *p;

#include<stdio.h>
struct student
{
int num;
char name[20];
char sex;
int age;
};
main()
{
struct student stu[3]={
{101,"AA",'M',19},{102,"BB",'M',20},{103,"CC",'F',21}};
struct student *p;
int i;
for(p=stu;p<stu+3;p++)
printf("\n%s\t%c\t%d",p->name,p->sex,p->age);
}


----------------解决方案--------------------------------------------------------
上楼的你好像没有给 “p” 赋初值吧?
----------------解决方案--------------------------------------------------------

首先
你的这个定义有问题~~~~~~~~~~struct *p;
应该定义为struct student *p;
因为struct不能单独表示一种特定的结构体类型

这样定义后,就不用你下面的这个转换了,因为是同一种结构体类型~~
p=(struct student *)stu[0].name;

2楼的初值在for语句里面
for(p=stu;p<stu+3;p++)
p=stu,这个


----------------解决方案--------------------------------------------------------
我在倒数第二行的循环里给p赐值了
----------------解决方案--------------------------------------------------------
  相关解决方案