当前位置: 首页 > news >正文

C语言指针初阶(2),初试结构体

指针和数组

二级指针

指针数组
指针数组是指针还是数组?
答案:是数组。是存放指针的数组。
数组我们已经知道整形数组,字符数组。

1.1 结构的基础知识
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
1.2 结构的声明
struct tag
{
        member - list ;
} variable - list ;
例如描述一个学生:
typedef struct Stu
{
        char name [ 20 ]; // 名字
        int age ; // 年龄
        char sex [ 5 ]; // 性别
        char id [ 20 ]; // 学号
} Stu // 分号不能丢

1.3结构成员的类型
结构的成员可以是标量、数组、指针,甚至是其他结构体。
1.4 结构体变量的定义和初始化
有了结构体类型,那如何定义变量,其实很简单。
struct Point
{
        int x ;
        int y ;
} p1 ; // 声明类型的同时定义变量 p1------》第一种定义方式,在大括号后面紧跟着输入变量名字
struct Point p2 ; // 定义结构体变量 p2-----》第二种定义方式,联想int a即可
1.5结构体成员的访问

结构体变量访问成员
结构变量的成员是通过点操作符(.)访问的,点操作符接受两个操作数。
例如:上图中的左边部分

结构体指针访问指向变量的成员
有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针。
那该如何访问成员。(上上图的右边部分)
如下:

 两种方式,

第一种:(*ps)即结构体,再使用.

第二种:直接ps(这是指针)加->

1.6. 结构体传参

上面的 print1 print2 函数哪个好些?
答案是:首选 print2 函数。
原因:
函数传参的时候,参数是需要压栈的。
如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的
下降。
结论:
结构体传参的时候,要传结构体的地址。

http://www.taodudu.cc/news/show-8328459.html

相关文章:

  • HDOJ 7328 Snake —— 2023“钉耙编程”中国大学生算法设计超级联赛(5)(2023杭电多校第五场)
  • 数据结构 | 顺序表SeqList【内附众多生活小案例~】
  • HIT2018计算机系统大作业 程序人生-Hello’s P2P
  • 【哈尔滨工业大学计算机系统大作业】程序人生-Hello’s P2P
  • CS大作业 程序人生 Hello's p2p
  • 串行存在检测(英語:,缩写SPD)是一种访问内存模块有关信息的标准化方式
  • 计算机无法维修技术鉴定,计算机维修中级维修工职业技能鉴定理论试卷.pdf
  • 常见WEB开发安全漏洞、原因分析及解决之道
  • SQL注入攻击的种类
  • Web安全漏洞(续)
  • Web开发常见的几个漏洞解决方法 ---SQL注入
  • Web开发常见的几个漏洞解决方法 (转)
  • 常见WEB开发安全漏洞 原因分析及解决
  • SQL注入攻击的种类和防范手段有哪些?
  • web漏洞原理 (需要每周更新此篇文章)
  • 安全测试:SQL注入攻防
  • 安全漏洞扫描,风险原因分析及解决方案
  • 防御和检查SQL注入攻击的手段
  • 分布式预约挂号平台(五) | 郑医宝の医院设置接口实现 swagger2测试增删改查 ~ 锁定解锁 ~ 发送签名秘钥
  • [附源码]计算机毕业设计Python预约挂号app(程序+源码+LW文档)
  • 小程序运营攻略《一》:基础知识
  • 微信小程序到底有哪此功能?
  • 用动态规划玩游戏
  • 趣味运动会介绍
  • 基于java+springmvc+mybatis+vue+mysql的四六级在线考试系统
  • 基于jsp和ssm架构实现四六级英语报名系统演示【附项目源码+论文说明】分享
  • java项目之高校四六级报名管理系统(ssm+jsp+mysql)
  • 毕业设计基于jspm的高校四六级报名管理系统 毕业设计论文+源码
  • springboot+java四六级英语考试报名系统
  • 计算机考试报名系统php,php英语四六级在线报名平台