C++结构体怎么返回值啊????
我定义了一个结构体,里面有两个int型,一个char型,调用函数后,想让传递进去的结构体的值根据调用函数而改变,我该怎么返回结构体啊????...
我定义了一个结构体,里面有两个int型,一个char型,调用函数后,想让传递进去的结构体的值根据调用函数而改变,我该怎么返回结构体啊????
展开
3个回答
推荐于2016-02-05
展开全部
可以直接返回结构体,也可以用指针参数(或者引用):
struct abc{
int a;
int b;
char c;
}
void fun(struct abc &st)//通过引用改变实参
{
st.a=5;
}
struct abc fun(struct abc st)//返回结构体
{
st.a=6;
return st;
}
struct abc{
int a;
int b;
char c;
}
void fun(struct abc &st)//通过引用改变实参
{
st.a=5;
}
struct abc fun(struct abc st)//返回结构体
{
st.a=6;
return st;
}
展开全部
将结构体指针作为函数的参数即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用返回结构,可以
将结构的一个指针(或者引用)传递给函数形参就行了。实例代码:
#include<iostream>
struct A
{
int x ;
int y ;
char z;
};
void func(A *p) // 接收指向结构体 A 的指针
{
p->x = 1;
p->y = 2;
p->z = 'L';
}
int main()
{
A a;
A * pa = &a; // 定义一个指向结构 a 的指针 pa
pa->x = 0;
pa->y = 0;
pa->z = 'h';
std::cout << "调用函数前的结构体:" << (pa->x) << (pa->y) << (pa->z) << std::endl;
func(pa); // pa 传进函数,函数改变 pa 指向的结构体
std::cout << "调用函数后的结构体:" << (pa->x) << (pa->y) << (pa->z) << std::endl;
return 0;
}
将结构的一个指针(或者引用)传递给函数形参就行了。实例代码:
#include<iostream>
struct A
{
int x ;
int y ;
char z;
};
void func(A *p) // 接收指向结构体 A 的指针
{
p->x = 1;
p->y = 2;
p->z = 'L';
}
int main()
{
A a;
A * pa = &a; // 定义一个指向结构 a 的指针 pa
pa->x = 0;
pa->y = 0;
pa->z = 'h';
std::cout << "调用函数前的结构体:" << (pa->x) << (pa->y) << (pa->z) << std::endl;
func(pa); // pa 传进函数,函数改变 pa 指向的结构体
std::cout << "调用函数后的结构体:" << (pa->x) << (pa->y) << (pa->z) << std::endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询