为什么我的程序没有更改结构变量中的值?
Why my program is not changing values in struct variables?
好吧,我输入了这个简单的程序:
#include <iostream>
using namespace std;
struct workers
{
char workername[55];
int workernumb;
float workerwage;
};
void changewage(workers worker1);
void show(workers worker1);
int main() // Defines all the workers profile and then call 'void show' to show the selected worker profile, is working well.
{
workers worker1=
{
"The name of the worker goes here",
The number of the worker goes here,
The wage of the worker goes here
};
cout << "Worker data:" << endl;
show(worker1);
changewage(worker1);
cout << "New worker wage:" << endl;
show(worker1);
return 0;
}
void show(workers worker1) // Program that shows the workers profile, is also working fine.
{
cout << "Name: " << worker1.workername << endl;
cout << "Number: " << worker1.workernumb<< endl;
cout << "Wage: " << worker1.workerwage<< endl;
}
void changewage(workers worker1) // Program that changes the wage of a selected worker, here it is not working fine.
{
float newwage;
cin >> newwage;
newwage=worker1.workerwage;
}
它旨在用于显示工人资料并更改他的工资,当我输入新工资时,它应该更改"worker1.workerwage",使"void show"中的单位也更改,然后新配置文件将显示新的工人工资。 问题是它仍然显示以前的值,并且没有更改任何内容。 PS:程序本身运行良好,唯一的问题是它的功能之一没有按照我想要的方式工作。而且正如你所看到的,我是学习 c++ 的初学者,如果我犯了一些错误,很抱歉......
如果要修改对象,则必须通过引用传递。
void changewage(workers& worker1) // Program that changes the wage of a selected worker, here it is not working fine.
{
float newwage;
cin >> newwage;
worker1.workerwage = newwage; // another mistake was here
}
代码不起作用的原因是,复制了 worker1,而您修改了副本,复制的对象是函数的本地对象,当函数返回时,复制的对象将死亡。
相关文章:
- 从结构寻址时,MMAP变量的行为很奇怪
- 访问在 C++ 结构中声明的枚举变量
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 为什么未命名的结构内联变量在每个翻译单元中没有相同的地址?
- 在类构造函数中使用结构变量
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 在类构造函数中定义结构变量的参数
- 为什么我们再次从结构对象创建结构变量?
- 从另一个 cpp 文件更改结构内、映射键内的变量
- 模板化结构中的零大小成员变量
- C++ 结构中的可选变量(变量结构)
- 对其中一个变量的多变量结构进行排序
- 指向非指针变量结构的指针。这些变量在哪里,堆还是堆栈?
- 是好是坏:为了避免使用全局变量/结构体的属性/大量参数而使用巨型结构体
- Cpp变量/结构用于存储128位数据
- 第一私有变量结构中允许的OpenMP调用和指令
- VS2008传递变量-结构与结构组件-优点/缺点
- 在c++类成员函数中使用c库变量/结构成员
- 如何不迷失在执行'<'对于多变量结构