标题:[求助]结构体的用法
只看楼主
zyn0329
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-1-4
 问题点数:0 回复次数:4 
[求助]结构体的用法

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 
2006-01-04 19:39
我是一根葱
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-12-31
得分:0 

你的结构指针变量定义好像有问题.
应这样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);
}


2006-01-04 20:28
zyn0329
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-1-4
得分:0 
上楼的你好像没有给 “p” 赋初值吧?

2006-01-04 21:00
黑白格子布
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2005-12-11
得分:0 

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

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

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


2006-01-04 21:51
我是一根葱
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-12-31
得分:0 
我在倒数第二行的循环里给p赐值了

2006-01-04 23:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-41626-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056065 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved