C语言——结构体(初阶版)
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 函数
原因:
函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降
结论:
C语言——结构体(初阶版)相关推荐
- C语言结构体,超简单入门版!
同学们好啊,我是401郭明,这篇博文我将带大家好好分析C语言结构体,帮大家在C语言方面快速打好基础,本篇博文主要针对没有C语言基础或者C语言基础不好的同学. 为了方便大家理解,我这篇文章将会讲的十分之 ...
- C语言 | 结构体数组
C语言结构体数组概述 一个结构体变量中可以存放一组有关联的数据,如一个学生的学号.姓名.成绩等数据,如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组. 结构体数组与之前介绍的数值型 ...
- 阵列c语言,C语言结构体阵列的定义
C语言结构体阵列的定义以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言结构体阵列的定义 1.C语言结构体阵列的定义 ...
- c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现
宋福英 摘 要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...
- c语言结构体成员变量私有化,C语言中结构体变量私有化详解
C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...
- c语言结构体变量所占字节计算,【C语言】结构体占用字节数及存储与空间分配...
我们都知道在数据类型中,char类型占1个字节,short占2个字节,int占4个字节,long占8个字节等等. 在计算结构体大小时需要考虑其内存布局,结构体在内存中存放是按单元存放的,每个单元多大取 ...
- ARM汇编语言实现peek()_ARM汇编之访问C语言结构体数据
前言 本文的写作目的在于装逼,没有要产生实际价值的意思. 前几天在做编译器的项目,有一个项目团队成员一直在问我ARM汇编能不能读C语言的结构体.我心想,我这生成ARM汇编的代码是用C++写的呀,又不是 ...
- C语言结构体和结构体数组示例 - Win32窗口程序演示
C语言结构体和结构体数组的使用: /* C结构体和结构体数组示例,by bobo */#include <windows.h>LRESULT CALLBACK WndProc (HWND, ...
- C语言结构体-大小,对齐,填充,使用及其他
C语言结构体-大小,对齐 C语言中的结构体(struct)的定义 在C语言中,最常用的数据结构就是结构体了,结构体也是其它数据结构(比如链表等)的基础,结构体的使用非常简单. 比如,定义一个结构体: ...
最新文章
- Linux之压缩和解压缩命令
- python刷新网页脚本_python语言如何测试实现页面下拉刷新
- JAVA——附加作业3——订阅报刊杂志
- 作为曾经的 Web 开发“王者”,jQuery 的传奇怎么续写?
- 通过SecureCRT和PuTTY连接臻云CentOS版云主机
- 双层pdf软件free_这款软件神器,让你读文献的效率翻一倍!(文末有福利哦)...
- 艾司博讯:拼多多推广投放时间设置步骤
- 下落(fall)【模拟】
- win10家庭版升级专业版
- RESTful API 简介(学习笔记)
- 调试ASP程序时,遇到程序运行错误时怎么查看具体错误位置呢?
- 【工具】git 入门
- 关于合成孔径声纳技术一点感想
- 个人微信api接口调用-微信群管理
- 第三章 基本数据类型-字符串类型认识
- KVC和KVO简单的区别
- Linux-系统管理11-引导过程与服务控制
- 定调!深度解读央行DC/EP数字货币在28省市深化试点背后的逻辑
- 用华为手机扫一扫功能检测食物热量方法
- 离职后,想去原来的公司上班怎么办?