C语言结构体学习笔记

目录

# 定义和使用

        · 自行建立结构体类型

        · 定义一个结构体类型变量

                1)先声明再定义

                2)声明同时定义 

                3)不指定类型名 

        · 初始化和引用

                 1)引用方式:

                2)结构体的运算:

                3)结构体的相互赋值:

# 结构体数组

        · 定义一个结构体数组

        · 初始化 

# 结构体指针

        · 指向结构体变量的指针 

        · 引用

        · 指向结构体数组的指针


# 定义和使用

        · 自行建立结构体类型

C语言中有各种类型数据,例如 int,double,float,char等等等等。

若有一组类型不同的数据,是不能直接存储在数组之中的,这个时候就需要使用结构体

C语言允许自行建立由不同类型的数据组合而成的数据结构,称之为结构体

        · 定义一个结构体类型变量
                1)先声明再定义

结构体类型名        结构体变量名

                2)声明同时定义 

struct 结构体名

        { 成员列表

           } 变量名列表 ;

                3)不指定类型名 

struct 

        { 成员列表

           } 变量名列表 ;

*指定了一个无名的结构体类型 (较少用)

        · 初始化和引用

*对结构体变量初始化(不是对结构体类型初始化)

struct block                              //声明结构体类型
{    int num ;                            //以下为结构体的成员
     char name ;
     char sex ;
     char address [20] ;
} a = { 2023000001 , " zhang san ", " M " , " 123 yuehai street " } ; //定义结构体变量a并初始化
                 1)引用方式:

结构体变量名.成员名

*注意不能用结构体变量名代表所有成员

                2)结构体的运算:

结构体成员可以进行运算

其类型决定了可以进行的运算

                3)结构体的相互赋值:

相同类型的结构体之间可以互相赋值。

 


# 结构体数组

        · 定义一个结构体数组

struct 结构体名

{ 成员列表 } 数组名 [ 数组长度 ]

        · 初始化 

struct 结构体名

{ 成员列表 } 数组名 [ 数组长度 ] = { 初值列表 };

 


# 结构体指针

        · 指向结构体变量的指针 

例子:

struct students * p ;
        · 引用

1、* p. num

2、stu.num

3、( * p ).num

4、p -> num

以上四种写法等价#

        · 指向结构体数组的指针
struct Student         //声明结构体类型struct Student 
{   int num; 
    char name[20]; 
    char sex; 
    int age; 
}; 

struct Student stu[3] = { {10101," zhangsan ",'M',18} , {10102,"Zhang Fang",'M',19} } 
//定义结构体数组并初始化

int main() {
 struct Student *p ;         //定义指向struct Student结构体变量的指针变量
 for ( p = stu ; p < stu+3 ; p++ ) 
 printf ("%5d %-20s %2c %4d\n",p->num , p>name , p>sex , p>age );
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值