我正在學習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的, 富酒吧, 12, 15.223
通過引用傳遞!您正在傳遞值,它基本上將結構對象的副本傳遞給函數,函數將修改副本而不是原始對象。原始對象仍具有不確定值,因爲該對象從未初始化過。 –
我如何'通過參考'? – mahela007