博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言中使用结构体
阅读量:7217 次
发布时间:2019-06-29

本文共 1185 字,大约阅读时间需要 3 分钟。

1、先定义结构体

struct stu

{

  char name[20];

  long number;

  float score[4];

} ;

再定义指向结构体类型变量的指针变量:

struct stu *p1, *p2 ;或者

struct stu p1, p2 ;

定义指针变量p 1、p 2,分别指向结构体类型变量。

2、

在定义类型的同时定义变量,如

struct student{

  char name[20];

  long number;

  float score[4];

}student1, student2;

 

3、直接定义结构类型变量,如

struct{

  char name[20];

  long number;

  float score[4];

}student1, student2;

 

注意:

定义的结构体如果是指针,访问成员时就用“->”如果定义的是结构体变量,访问成员时就用“.”这个使用方式大家在初学STM32的的时候在库函数中会遇到的,

 

4、

struct和typedef struct的区别

 

 (1)在C中定义一个结构体类型要用typedef:typedef structStudent {

             char name[20];

             long number;

             float score[4];

          }Stu; 

在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)

这里的Stu实际上就是struct Student的别名。Stu==struct Student另外这里也可以不写Student(于是也不能struct Student stu1;了,必须是Stu stu1;)

typedef struct {

      char name[20];

      long number;

      float score[4];

 }Stu;    

但在c++里很简单,直接structStudent {

      char name[20];

      long number;

      float score[4];

};

于是就定义了结构体类型Student,声明变量时直接Student stu1,stu2;

(2)在c++中如果用typedef的话,又会造成区别:struct  Student  {  

      char name[20];

      long number;

      float score[4];

 }stu1;//stu1是一个变量  

typedef  struct   Student2   {  

      char name[20];

      long number;

      float score[4];

 }stu2;//stu2是一个结构体类型=structStudent  

    使用时可以直接访问stu1.a 但是stu2则必须先   stu2 s2;    

然后    s2.a=10;

转载地址:http://kltym.baihongyu.com/

你可能感兴趣的文章
[转载] 信息系统项目管理师视频教程——18 项目沟通管理
查看>>
在Windows下建立QT开发环境
查看>>
Jedis、JedisPool、ShardedJedis和ShardedJedisPool,java对redis的基本操作
查看>>
[转载] 致命伴侣
查看>>
HTML5 localStorage本地存储实际应用举例
查看>>
Scala访问修饰符
查看>>
实习感悟
查看>>
产品经理网站小结
查看>>
Bootstrap 附加导航插件
查看>>
如何设置启动SMTP、POP3以及IMAP4的SSL服务端口?
查看>>
自制函数strcpy
查看>>
gSoap开发(三)——WSDL简介
查看>>
软件RAID5项目实战!!!
查看>>
Java基础学习总结(21)——数组
查看>>
js格式化日期
查看>>
定时与延时任务
查看>>
Squid 日志分析 和反向代理
查看>>
Hadoop的安装及一些基本概念解释
查看>>
大容量分区命令parted
查看>>
从输入 URL 到页面加载完成的过程中都发生了什么事情?
查看>>