1.定义和使用结构体变量

结构体的基础知识

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

自己建立结构体类型

结构的成员可以是标量、数组、指针,甚至是其他结构体。

struct 结构体名

{成员表列}:↓

注意:结构体类型的名字由一个关键字 struct 和结构体名组合而成的(例如 struct Student)结构体 名是由用户指定的,又称 "结构体标记"(structure tag),以区别于其他结构体类型。上面的结构体声明中Student 就是结构体名(结构体标记)

类型名 成员名:

"成员表列"也称为"域表",每一个成员是结构体中的一个域 。成员名命名规则与变量名相同

声明结构体的形式

结构体的初始化

代码详解:

struct point {int x;int y;
}; p1;  //声明类型的同时定义变量p1
struct point p2;//定义结构体变量p2
struct stu {char name[20]; //名字int age;  //年龄};
struct stu s = { "lisi",25 };//初始化struct Node {int data;struct point p;struct Node* next;}; n = { 10,{4,5},NULL };//结构体的嵌套初始化struct Node n2 = { 20,{5,6},NULL };//结构体嵌套初始化

2. 结构体成员的访问

结构体变量访问成员
结构变量的成员是通过点操作符
访问的。点操作符接受两个操作数。
例如:

 我们可以看到 s 里面有成员 name 和age 

那我们如何访问呢?

struct S s;
strcpy(s.name, "zhangsan");//使用.访问name成员
s.age = 20;//使用.访问age成员
结构体指针访问指向变量的成员
有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针。
那该如何访问成员。
如下:

3.结构体传参

话不多说直接上代码!

struct p {int data[900];int n;};
struct p s = { {4,3,2,1},900 };
//结构体传参
void point1(struct p s) {printf("%d %d\n", s.data,s.n);
}
//结构体地址传参
void point2(struct p* s1) {printf("%d %d\n", s1->data, s1->n);
}
int main() {point1(s);//传结构体point2(&s);//传地址return 0;
}

对于上面的两种函数 point 1和 point2 哪种函数好一些呢?

首选 point2 函数

原因:

函数传参的时候,参数是需要压栈的。
如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的
下降

结论:

结构体传参的时候,要传结构体的地址。
以上就是 小王同学给大家整理的一些初阶版 认识结构体啦
后面会给大家 带来进阶版的(肝疼.jpg)
 
制作不易 还希望友友们多多三连支持 就是对小王同学最大的进步和动力!
  

C语言——结构体(初阶版)相关推荐

  1. C语言结构体,超简单入门版!

    同学们好啊,我是401郭明,这篇博文我将带大家好好分析C语言结构体,帮大家在C语言方面快速打好基础,本篇博文主要针对没有C语言基础或者C语言基础不好的同学. 为了方便大家理解,我这篇文章将会讲的十分之 ...

  2. C语言 | 结构体数组

    C语言结构体数组概述 一个结构体变量中可以存放一组有关联的数据,如一个学生的学号.姓名.成绩等数据,如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组. 结构体数组与之前介绍的数值型 ...

  3. 阵列c语言,C语言结构体阵列的定义

    C语言结构体阵列的定义以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言结构体阵列的定义 1.C语言结构体阵列的定义 ...

  4. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现

    宋福英 摘  要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...

  5. c语言结构体成员变量私有化,C语言中结构体变量私有化详解

    C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...

  6. c语言结构体变量所占字节计算,【C语言】结构体占用字节数及存储与空间分配...

    我们都知道在数据类型中,char类型占1个字节,short占2个字节,int占4个字节,long占8个字节等等. 在计算结构体大小时需要考虑其内存布局,结构体在内存中存放是按单元存放的,每个单元多大取 ...

  7. ARM汇编语言实现peek()_ARM汇编之访问C语言结构体数据

    前言 本文的写作目的在于装逼,没有要产生实际价值的意思. 前几天在做编译器的项目,有一个项目团队成员一直在问我ARM汇编能不能读C语言的结构体.我心想,我这生成ARM汇编的代码是用C++写的呀,又不是 ...

  8. C语言结构体和结构体数组示例 - Win32窗口程序演示

    C语言结构体和结构体数组的使用: /* C结构体和结构体数组示例,by bobo */#include <windows.h>LRESULT CALLBACK WndProc (HWND, ...

  9. C语言结构体-大小,对齐,填充,使用及其他

    C语言结构体-大小,对齐 C语言中的结构体(struct)的定义 在C语言中,最常用的数据结构就是结构体了,结构体也是其它数据结构(比如链表等)的基础,结构体的使用非常简单. 比如,定义一个结构体: ...

最新文章

  1. Linux之压缩和解压缩命令
  2. python刷新网页脚本_python语言如何测试实现页面下拉刷新
  3. JAVA——附加作业3——订阅报刊杂志
  4. 作为曾经的 Web 开发“王者”,jQuery 的传奇怎么续写?
  5. 通过SecureCRT和PuTTY连接臻云CentOS版云主机
  6. 双层pdf软件free_这款软件神器,让你读文献的效率翻一倍!(文末有福利哦)...
  7. 艾司博讯:拼多多推广投放时间设置步骤
  8. 下落(fall)【模拟】
  9. win10家庭版升级专业版
  10. RESTful API 简介(学习笔记)
  11. 调试ASP程序时,遇到程序运行错误时怎么查看具体错误位置呢?
  12. 【工具】git 入门
  13. 关于合成孔径声纳技术一点感想
  14. 个人微信api接口调用-微信群管理
  15. 第三章 基本数据类型-字符串类型认识
  16. KVC和KVO简单的区别
  17. Linux-系统管理11-引导过程与服务控制
  18. 定调!深度解读央行DC/EP数字货币在28省市深化试点背后的逻辑
  19. 用华为手机扫一扫功能检测食物热量方法
  20. 离职后,想去原来的公司上班怎么办?

热门文章

  1. css引入外部自定义字体
  2. React实现复制功能
  3. 商业研究(18):以小见大,看互联网经济(4个股权众筹平台,10个项目)
  4. xml文档规则_避免文档陷阱的7条规则
  5. Windows 上用putty 和 SwitchySharp [转自同事]
  6. Echart地图组件的使用
  7. 如何用WinImage制作任意大容量的ima或img磁盘文件
  8. 计算机网络考试答案参考--网络间通信考试
  9. 天问:科学有边界吗?----《三体》与量子物理史话
  10. Linux命令-完整手册