结构体的相关内容

#结构体类型的定义

   1.注意结尾要加分号  2.定义结构体成员时不能赋初值  3.结构体成员名和非成员(普通变量)可以采用相同的名字,系统可以通过上下文将他们区分  4.定义结构体类型相当于规定了构成这种数据类型的模型,在编译时不分配空间,正如无法直接给int char赋值,也不能给定义的结构体类型赋值

#结构体变量

##结构体变量的定义

1.struct  student  

{   

};

struct student person1,person2;

2.struct student

{

}person1,person2;

3.struct 

{

}person1,person2;采用这种方法时无法在后续定义其他结构体变量

##结构体变量的初始化

注意:只能在定义结构体变量时初始化

struct student person1={"20040718""lufei""nv"};--正确

struct student person1;

person1={"20040718""lufei""nv"};--错误

##结构体变量的引用

###对结构体成员

struct student person1;

person1.birthday=20040718;

###对整体

1.不允许对整体进行运算,比较,赋值,输入输出等操作(对成员可以),如:sum=person1+person2   scanf("%s",&person1)是错误的 2.当两个结构体变量类型相同时,可以进行整体赋值,如:person1=person2   3.不允许对整体进行逻辑操作,如:person1==person2(需要这种比较时,应逐个比较成员)

#结构体数组

可以将结构体数组看作是一个表格,一个学生是一个结构体,在表格中占一列,那一个班的学生就构成一个表格,他们在内存中的存放是连续的

##结构体数组的定义

三种方法,同上,以第一种举例

struct student

{

};

stuct student person[3];

#指针与结构体

typedef struct student

{

int age;

char name[20];

}STUDENT,*STU;

STUDENT S,*p=&s;  注:*STU p等价于STUDENT *p;

##在定义指针后,结构体变量的引用方式有三种

1.s.name

2,(*p).name必须加括号,因为‘.’的优先级高于()

3.p->name

通过改变指针变量的值就可以通过它访问结构体数组当中的不同成员

STUDENT st[3]={   };

*STU p;

for(p=st;p<st+3;p++)

printf("%d",p.id);

##使用指针时,需注意优先级和结合方向

1.p->n++ p指向成员n,使n加一

2.(p++)->n  p先指向n,然后p+1

3.++p->n  p指向的n+1

4.(++p)->n  使p加1,再引用n

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值