17 指针与结构体
来源:互联网 发布:艾吉森空气净化器 知乎 编辑:程序博客网 时间:2024/05/20 20:56
为什么需要结构体?
为了表示一些复杂的事物,而普通的基本类型无法满足实际要求
什么叫结构体?
把一些基本数据类型组合在一起形成的一个新的复合数据类型,这个叫做结构体
如何定义结构体?
三种定义,建议使用第一种
// 第一种定义,这只是定义了一个新的数据类型,并没有定义变量
Struct Student
{
int age;
float score;
char sex;
};
// 第二种定义
Struct Student2
{
int age;
float score;
char sex;
}st2;
// 第三种定义
Struct
{
int age;
float score;
char sex;
}st3;
怎样使用结构体变量?
赋值和初始化
定义的同时可以整天赋初值,
如果定义完之后,则只能单个赋初值。
如何取出结构体变量中的每一个变量 【重点】
1.结构体变量名 . 成员名
2.指针变量名->成员名 (第二种方式更常用)
指针变量名->成员名 在计算机内部会被转化成
( * 指针变量名 ) . 成员名 的方式来执行
所以说这两种方式是等价的
例子:
struct Student
{
int age ;
float score ;
char sex ;
} ;
int main (void)
{
struct Student st = { 88 , 66.6 , ‘ F ’ }; // 初始化,定义的同时赋初值
struct Student * pst = & st;
pst ->age = 88; // 第二种方式
st . age = 10; // 第一种方式
return 0;
}
1.pst ->age 等价于 (*pst). age 等价于st . age
2.我们之所以知道 pst->age等价于st . age , 是因为pst->age是被转化成了(*pst). age 来执行
3.pst->age的含义:pst所指向的那个结构体变量中的age这个成员
结构体变量和结构体变量指针作为函数参数传递的问题
推荐使用结构体指针变量作为函数参数来传递
结构体变量的运算
结构体变量不能相加不能相减,也不能相互乘除,
但结构体变量可以互相赋值
例子:
Struct Student
{
int age;
float score;
char sex;
};
struct Student st1, st2;
st 1 + st 2 ; st 1 - st 2 ; st 1 / st 2 ;// 都是错误的
st 1 = st 2 ; st 2 = st 1 ;// 都是正确的
举例:
动态构造存放学生信息的结构体数组
- 17 指针与结构体
- 结构体与指针
- 结构体与指针
- 指针与结构体
- 结构体与指针
- 指针与结构体
- 结构体与指针
- 结构体与指针
- 指针与结构体、函数指针
- C语言指针-----指针与结构体
- 结构体变量与指针
- 初识结构体与指针
- 结构体数组与指针
- C++结构体与指针
- 结构体指针与函数
- 07指针 指针与数组 指针与字符串 指针与函数 结构体与指针 宏
- 结构体指针变量与结构体成员指针变量
- 结构体指针与结构体中变量的指针
- iOS 8个实用小技巧
- 函数指针的几个例子
- Linux常用系统信息查看命令总结
- 有用的linux 命令
- 整理:Pycharm 快捷键(DEFAULT KEYMAP)
- 17 指针与结构体
- 一起学习Chromium之Browser进程启动分析
- # MS CRM 08/09/2016心得
- Unity开发基础——使用字符串学习笔记
- ios极光推送的自定义消息和registerID的获取
- 如何在libGDX中调用android摄像头
- leetcode题目总结<1>
- 华为OJ——提取不重复的整数
- oracle排查错误sql的一些方法