从零开始学习C语言日记——DAY33指针-数组-结构体

  • 指针和数组

数组名和数组首元素地址是一样的,数组名表示的是数组首元素的地址。

那么这样写是可行的

Int arr[10]={1,2,3,4,5,6,7,8};

Int *p =arr//p存放的是数组首元素的地址。

从零开始学习C语言日记——DAY33指针-数组-结构体_第1张图片

 

  • 二级指针

从零开始学习C语言日记——DAY33指针-数组-结构体_第2张图片

 

这里的ppa就是一个二级指针变量

从零开始学习C语言日记——DAY33指针-数组-结构体_第3张图片

 

  • 指针数组

指针数组是指针还是数组?

是数组,是存放指针的数组

目前已经知道的数组

Int arr1[5];整形数组——存放整形的数组就是整形数组

Char arr2[6];字符数组——存放的是字符

所以指针数组是存放指针的数组

Int* parr[5];//整形指针的数组

  • 结构体

结构体的基础知识

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

结构的声明

从零开始学习C语言日记——DAY33指针-数组-结构体_第4张图片

 

Stu是一个类型

Stu s是一个对象

类型创建一个对象

如果在大括号外面添加变量,就为全局变量,s为局部变量

结构成员的类型可以是标量——age、name。数组——name[20}、指针、甚至其他结构体

如果你的对象里有其他结构体那么在定义的时候应该用对应的花括号

 

如果需要访问结构体变量的内容可以使用.(点)或者*、->(指针)

从零开始学习C语言日记——DAY33指针-数组-结构体_第5张图片

 

如果想打印出内容也可以使用打印1.传值调用2.传址调用

从零开始学习C语言日记——DAY33指针-数组-结构体_第6张图片

 

但相对来说方法2更好,因为如果使用方法1你实参有多大形参就也要开辟同样的空间来储存,而传地址就不需要

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

结论:结构体传参的时候,要传结构体的地址。

你可能感兴趣的:(笔记,学习,c语言,开发语言)