C语言结构体-结构体作为函数参数

函数中可以传递结构体,有两种情况:

1、传递结构体中的数据值

用练习举例

(1)定义结构体

这里我用的起别名,可以不用写Student,但是我想写。

(2)定义一个学生,并给学生赋值

由于stu.name是要赋值一个字符串,所以底层还是一个字符数组,要用到字符串的函数进行赋值。

srtcpy(stu.name,”aaa”);

这里赋值aaa只是用于进行对照实验。

(3)输出打印

(4)定义函数,用来进行修改学生中的数据

函数名method,返回值类型为void(空类型),形参st1,数据类型为S;

函数体部分,主要是打印接收前的初始值,和修改后的修改时。

在修改学生年龄的地方,由于结构体Student里年龄属性只是一个普通的int类型变量,所以在使用scanf的时候要加上&获取其地址值。

(5)调用函数

开始调用之前记得声明函数

可以看到,在调用函数修改之后,打印输出的还是原来的值,这是因为函数中写的是结构体类型的变量,相当于是定义了一个新的变量

此时是把main函数中stu中的数据,传递给了method函数,并把stu中的数据给了新的变量st1,

在函数中仅仅只是修改了变量st1中的值,对main中的stu的值是没有进行修改的。

如果想要实现,就需要用到第二种情况

2、传递结构体的地址值

将method函数里的形参,改成S类型的指针。

由于我们要传递一个指针形参,所以实参我们需要加上&

记得修改声明的函数

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇