C语言问题 #include <stdio.h> typedef struct {int b,p;} A; void f(A c)详见问题补充里的
#include<stdio.h>typedefstruct{intb,p;}A;voidf(Ac){intj;c.b+=1;c.p+=2;}main(){inti;Aa...
#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);
} 展开
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);
} 展开
3个回答
展开全部
你这样做是传值,即使函数f执行了,对你定义的结构体变量也没有任何影响,你应该将结构体的地址传给函数,例如:
void f(A *c){
*c.b +=1;
*c.p +=2;
}
main(){
A a={1,2};
f(&a);
printf(……);
}
void f(A *c){
*c.b +=1;
*c.p +=2;
}
main(){
A a={1,2};
f(&a);
printf(……);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你是想让结构a中的元素b+1,p+2
则你可以将子函数中的参数类型设置为引用,或指针
即void f(A &c) 或 void f(A* c)
传的时候,引用,直接传, 指针取地址传
则你可以将子函数中的参数类型设置为引用,或指针
即void f(A &c) 或 void f(A* c)
传的时候,引用,直接传, 指针取地址传
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询