#include<stdio.h>
typedef struct
{
int b,p;
}A;
void f(A c)
{int j;
c.b+=1;
c.p+=2;}
main()
{int i;
A a={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);}
为什么结果是1,2 ??
还有这个是什么意思?
void f(A c)
{int j;
c.b+=1;
c.p+=2;}
关于结构体变量
答案:2 悬赏:10 手机版
解决时间 2021-06-07 12:57
- 提问者网友:轮囘Li巡影
- 2021-06-06 21:07
最佳答案
- 五星知识达人网友:像个废品
- 2021-06-06 22:24
A是类型。。像int一样。。只不过A是自己定义的。。int是系统给出的c是变量。。A是结构体类型。。他包含两个int类型b,p。。分别为c.b和c.p。。最好不要用字母来定义变量或结构体类型。。这样很不方便。。看起来很麻烦。。
mian函数中先定义了一个结构体变量A,A中的成员b=1,p=2,然后调用f()函数,但是这只是完成了一个值传递,所以b,p的值不会发生变化.
mian函数中先定义了一个结构体变量A,A中的成员b=1,p=2,然后调用f()函数,但是这只是完成了一个值传递,所以b,p的值不会发生变化.
全部回答
- 1楼网友:詩光轨車
- 2021-06-06 22:59
函数fun只是对传来的参数A类型的变量c的两个元素b、p进行+1和+2的运算,并没有影响到原值。因而可以改成传送指针改变原值。可以这样写:
fun(A *c)
{*c->b+=1;
*c->p+=2;
}
开头的int j,似乎没有实际意义,可以省略
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯