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 函数。 原因: 函数传参的时候,参数是需要压栈的。 如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的 下降。 结论: 结构体传参的时候,要传结构体的地址。
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 函数。 原因: 函数传参的时候,参数是需要压栈的。 如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的 下降。 结论: 结构体传参的时候,要传结构体的地址。
发布评论