C高级之结构体(二)

结构体指针

1.    定义结构体指针

现定义结构体如下:

typedef struct Student

{

int number;

char name[64];

 char sex;

 int age;

int score;

}student;

 

像定义其他普通变量定义结构体指针,如下:

student student1;

student *pstu;

pstu = &student1;

 

2.    通过结构体指针引用结构体变量中值

 

结构体通过 “.” 来引用结构体变量中的成员,比如想引用student1中的number,可以这样写:student1.number,因为pstu = &student1即*pstu = student1,所以 student1.number等价于(*pstu).number。

 

示例程序如下:

#include<stdio.h>

#include<string.h>

int main()

{

       typedefstruct Student

       {

              intnum;

              charname[64];

              charsex;

              intage;

              intscore;

       }student;

       studentstu1 = {10001, "wangerma", 'm', 18, 100};

       student*pt;

       pt=&stu1;

       printf("%d\t%s\t%c\t%d\t%d\n",stu1.num,stu1.name, stu1.sex, stu1.age, stu1.score);

       printf("%d\t%s\t%c\t%d\t%d\n",(*pt).num, (*pt).name, (*pt).sex, (*pt).age, (*pt).score);

 

       return0;

}

在上面的示例中,

(*pt).num, (*pt).name, (*pt).sex,(*pt).age,(*pt).score写起来较为麻烦,

所以C语言便提供了另一种更为常用的的写法:

(*). 等价于 ->

所以在上面的示例中,第二个printf()函数会被经常这样写:

printf("%d\t%s\t%c\t%d\t%d\n", pt->num, pt->name, pt->sex, pt->age, pt->score);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值