使用函数操作struct数据类型的值 我正在学习C++中的StultType,我试图编写一个函数,它将改变Stutt类型变量的成员的值。 然而,它产生了一个意外的输出,我不明白为什么会发生这种情况。 /测试结构类型的程序/ #包括 #包括 使用名称空间std; 结构myStruct { 字符串a; b串; INTC; 浮动d; }; 无效赋值(myStruct myobj) { myobj.a=“foobar”; myobj.b=“Foo-Bar”; myobj.c=12; myobj.d=15.223; } int main() { myStruct x; cout

使用函数操作struct数据类型的值 我正在学习C++中的StultType,我试图编写一个函数,它将改变Stutt类型变量的成员的值。 然而,它产生了一个意外的输出,我不明白为什么会发生这种情况。 /测试结构类型的程序/ #包括 #包括 使用名称空间std; 结构myStruct { 字符串a; b串; INTC; 浮动d; }; 无效赋值(myStruct myobj) { myobj.a=“foobar”; myobj.b=“Foo-Bar”; myobj.c=12; myobj.d=15.223; } int main() { myStruct x; cout,c++,function,struct,C++,Function,Struct,通过引用assignValue函数来传递myStruct参数,因此可以对其进行修改: void assignValues(myStruct& myobj) ^^^ pass by reference { myobj.a = "foobar"; myobj.b = "Foo Bar"; myobj.c = 12; myobj.d = 15.223; } 通过引用将myStruct参数传递给assignVal

通过引用assignValue函数来传递myStruct参数,因此可以对其进行修改:

void assignValues(myStruct& myobj)
                         ^^^ pass by reference
{
    myobj.a = "foobar";
    myobj.b = "Foo Bar";
    myobj.c = 12;
    myobj.d = 15.223;
}

通过引用将myStruct参数传递给assignValue函数,以便对其进行修改:

void assignValues(myStruct& myobj)
                         ^^^ pass by reference
{
    myobj.a = "foobar";
    myobj.b = "Foo Bar";
    myobj.c = 12;
    myobj.d = 15.223;
}

尽管可以将指针传递给函数:

void assignValues(myStruct* myobj) //<---- pointer
{
    myobj->a = "foobar";
    myobj->b = "Foo Bar";
    myobj->c = 12;
    myobj->d = 15.223;
}
void assignValues(myStruct*myobj)//a=“foobar”;
myobj->b=“Foo-Bar”;
myobj->c=12;
myobj->d=15.223;
}

尽管您可以向函数传递指针:

void assignValues(myStruct* myobj) //<---- pointer
{
    myobj->a = "foobar";
    myobj->b = "Foo Bar";
    myobj->c = 12;
    myobj->d = 15.223;
}
void assignValues(myStruct*myobj)//a=“foobar”;
myobj->b=“Foo-Bar”;
myobj->c=12;
myobj->d=15.223;
}

按参考传递!您是通过值传递的,它基本上是将结构对象的副本传递给函数,而函数修改的是副本而不是原始对象。原始对象仍然具有不确定的值,因为对象从未初始化。如何“通过引用传递”?通过引用传递!您是通过值传递的,它基本上是将结构对象的副本传递给函数,而函数修改的是副本而不是原始对象。原始对象仍然具有不确定的值,因为对象从未初始化。如何“通过引用传递”?可以,但通常不建议这样做。除此之外,指针可以为空。这在引用中是不可能发生的。真的吗?当然它们可以是null、bad等。这只是修改数据的另一种方式,不是吗?或者今天没有人使用指针?你可以,但一般不推荐使用。除此之外,指针可以为空。这在引用中是不可能发生的。真的吗?当然它们可以是null、bad等。这只是修改数据的另一种方式,不是吗?还是今天没人用指针?谢谢。。连同Als的评论,这篇文章告诉了我我需要知道的。谢谢。。连同Als的评论,这篇文章告诉了我我需要知道的。