结构体初学

结构体类型的说明

struct slist//结构体定义
{
    double s;
     struct slist *next;     
};

必须要有struct关键字。而slist是结构体类型,可以随便定义,但必须要满足变量的定义规则。

大括号内是结构体成员变量

注意这个结构体没有定义变量 

上面的slist是结构体类型的名称,不是结构体变量的名称!!

结构体变量定义的方法

  结构体变量定义有三种:

  1.类型说明时,定义变量

struct slist//结构体定义
{
    double s;
     struct slist *next;     
}a;//a就是结构体变量
 

2.先定义类型,再定义变量

struct slist//结构体定义
{
    double s;
     struct slist *next;     
};

 struct slist a;//a就是结构体变量

3.没有类型名,直接定义变量(用的少)

 struct   //没有类型名
{
    double s;
     struct slist *next;     
}a;//结构体变量a

typedef

typedef struct slist//结构体定义
{
    double s;
     struct slist *next;     
}a;

 

注意 a不是结构体变量了,而是结构体类型,相当于  struct slist的小名

 a x;//用a来定义一个结构体变量相等于struct slist x;

用struct slist x;也是可以定义x结构体变量

定义结构体变量的三种情况

1.普通变量

a x;//普通变量

2.指针变量

a * p;//指针变量

3.数组变量

a x[3];//数组变量

结构体成员的引用

变量引用

变量.结构体变量

x.s = 3;

指针引用有两种情况

1.指针名->结构体成员变量 

2.(*指针名).结构体成员变量  成员运算符.优先级比(*)解引用运算符高

p->s;

(*p).s;  

数组引用

数组名[下标].结构体成员变量

必须通过循环语句来引用

for(int i=0;i<3;i++)

        x[i].s = 15;

链表

一个数据成员由两个部分组成,数据域和地址域(下一个数据的地址)

地址域肯定是指针,这个指针必须是整个数据的类型

struct 类型名

{

        数据

         struct 类型名 * next;//指针

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值