结构体指针
指针当做函数参数
数组当做函数参数
1.结构体指针
指向结构体变量的指针.称为结构体指针
Student stu ={0};
Student *p = &stu;
Student * 结构体指针类型(类型), p结构体指针变量(变量名);
&stu 结构体变量地址(初值)
(*p).sex = ‘m’;
p->sex= ’m’;
(*p)对指针取值后是结构体变量,.sex是访问成员变量
使用指针可以指向操作符直接访问结构体成员p->sex
1.结构体指针
结构体指针变量保存的是结构体变量的首地址其本质是结构体第一个成员变量的地址
可以通过结构体指针变量加指向操作符的形式来访问每一个成员变量
对于结构体而言,定义的结构体所占的字节数,不仅与其成员的数据类型有关,也与成员顺序有关,顺序不同所占的空间大小也可能不同.
对于指针变量而言,自增运算;指针每一次偏移一个对应数据类型所占的字节数,取内容运算符操作时,也是根据指针变量所保存的 地址和指针变量的数据类型来决定从什么地址开始到多少个字节结束,这个内存范围内的数据。也是指针变量本质是保存一个存储区域的首地址的原因。结构体数组 的数组名是一个结构体指针常量。
结构体内包含指针
在定义结构体的时候,可以使用指针变量作为结构体成员,但是一定要防止结构体类型的变量在定义时,与指针变量所对应的数据是常量,如果是常量,则对其修改时会崩溃。
2.指针当作函数参数
指针可以当作函数参数
包括:一般指针作为函数参数,数组当作函数参数,结构体指针当作函数参数
传值和传址
所谓传值就是把实参的值传递给形参。
所谓传址,我们有时候需要改变实参的值,这时就需要传地址。
把地址当做函数参数传入函数。
3.数组当做函数参数
数组当作函数参数,形参仅代表数组的首地址,我们需要传入数组元素个数。
原文地址:http://9217856.blog.51cto.com/9207856/1563754