结构体指针

70 阅读1分钟

分析以下代码c043966ee65bdaa69e91e9f7bae31b1c.png 首先理解为何、如何用指针构建函数,例如以下代码

0a7bccda46ad898741623454e4305974.png

1.函数test参数为int类型数据x的指针,无返回值

2.函数体是将指针参数指向的变量赋值为100

3.main函数内容:将a赋值1,调用test函数,带入a的地址,将a赋值100,打印a的值,输出100

这是整个代码运行的逻辑

但如果不使用指针而仅使用x本身的话,输出的结果就会是1,而非100

这是因为函数参数默认是值传递的,也就意味着函数修改的是创建的副本,而不是本身。

而使用指针为参数时,我们就可以用函数修改原始数据,使a的值为100而不是1.

同时,面对结构体这样一个相对庞大的单位,复制整个结构体会浪费时间和空间,而如果使用指针,只需要复制传递一个4或8字节的地址,更加节约便利。

回到第一个代码,剖析它的逻辑过程;

1.创建结构体,成员有name、sex、age、tele。

2.创建print函数,参数为指向struct stu类型的指针,参数名为ps,无返回值,函数体为打印该指针指向结构体中的各个成员。

3.main函数内容:创建一个实际的结构体变量s,调用print函数,输入s地址,打印出s各成员。