300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 结构体和结构体指针作为函数参数的区别

结构体和结构体指针作为函数参数的区别

时间:2019-02-01 11:27:02

相关推荐

结构体和结构体指针作为函数参数的区别

0·说明

文章里的观点来自网络的总结,程序经过自己的验证,在VC6.0中可正常执行。

1.测试程序

/*##结构体指针与结构体变量用作函数参数区别:##结构体指针作为函数参数时,调用时传递的是指向一个结构体变量的指针(即结构体变量的地址);结构体变量作为函数参数时,调用时传递的结构体变量本身。即一个结构体A,当它的指针作为参数传入函数func,那么在func中可以通过指针改变结构体的值,函数返回后,结构体的值被改变; 但是,当结构体变量作为参数传入函数func时,在func函数中即使对他进行了修改,当函数返回时,结构体本身并没有改变,因为修改的只是他的一个副本。*/#include <stdio.h>/* 定义结构体类型Point */typedef struct {int x;int y;} Point; void fun1(Point point) {point.x += 10;point.y += 10;}void fun2(Point *pPoint) {pPoint->x += 10;pPoint->y += 10;}void main( ){Point p;p.x = 100;p.y = 200;/* 调用 fun1 */fun1(p);printf("x=%d, y=%d\r\n", p.x, p.y);/* 调用 fun2:取p的地址作为参数 */fun2(&p);printf("x=%d, y=%d\r\n", p.x, p.y);}

2·数据结果

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