300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C语言结构体指针与结构体变量作形参的区别

C语言结构体指针与结构体变量作形参的区别

时间:2020-04-11 05:25:22

相关推荐

C语言结构体指针与结构体变量作形参的区别

区别

结构体变量

结构体变量作为函数参数,传递的是结构体变量本身,是一种值传递形参结构体变量成员值的改变不影响对应的实参构体变量成员值的改变

结构体指针

结构体指针作为函数参数,传递的是指向结构体变量的本身结构体指针指向的变量成员值的改变影响对应的实参构体变量成员值的改变

代码

直接说有些抽象难懂,敲代码演示一遍就很清楚了

#include <stdio.h>#include <stdlib.h>#include <string.h>struct stru{int num;};//形参为结构体变量void addNum(struct stru p, int num2){p.num += num2;}//形参为结构体指针void addNum2(struct stru *p, int num2){if(!p) return;//确保指针不为空指针p->num += num2;}int main(){struct stru t;t.num = 50;addNum(t,5000);printf("形参为结构体变量得到的结果为: %d\n", t.num);addNum2(&t,5000);printf("形参为结构体指针得到的结果为: %d\n", t.num);return 0;}

输出结果

形参为结构体变量得到的结果为: 50形参为结构体指针得到的结果为: 5050

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。