我正在学习 C++ 中的结构类型,并尝试编写一个函数来更改结构类型变量成员的值。但是,它会产生意外的输出,我无法弄清楚为什么会这样。/测试结构类型的程序/
#include <iostream>
#include <cstring>
using namespace std;
struct myStruct
{
string a;
string b;
int c;
float d;
};
void assignValues(myStruct myobj)
{
myobj.a = "foobar";
myobj.b = "Foo Bar";
myobj.c = 12;
myobj.d = 15.223;
}
int main()
{
myStruct x;
cout << x.a <<endl;
//x.a = "Hello world";
//x.b = "This is C++";
//x.c = 10;
//x.d = 13.1332;
assignValues(x);
cout << x.a<<endl;
cout << x.b << endl;
cout << x.c << endl;
cout << x.d << endl;
}
如果我使用单独的赋值语句(我已在代码中注释掉)而不是 assignValues() 函数,我会得到预期的输出。
PS:我期望的输出值如下:foobar, Foo Bar, 12, 15.223