关于结构体的问题
  • 板块灌水区
  • 楼主ScottSuperb
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/11/15 21:45
  • 上次更新2023/11/4 00:27:08
查看原帖
关于结构体的问题
437893
ScottSuperb楼主2021/11/15 21:45

写了这么段代码

int operator[] (int n) {
	return this->n[n];
}
Num operator+ (Num b) {
	Num res("0");
	unsigned long long l = max(n.size(), b.n.size());
	while (n.size() < l)
		n.push_back(0);
	while (b.n.size() < l)
		b.n.push_back(0);
	for (int i = 0; i < l; i++) {
		res.n[i] += n[i] + b[i]; //这行
		res.n.push_back(res[i] / 10);
		res.n[i] %= 10; //还有这行
	}
	clz(res);
	return res;
}

其中加了注释的两行,如写成下面这样就会报错,说必须是可修改的左值:

res.n[i] += n[i] + b[i];
res.n[i] %= 10;

为什么?环境:VS2019

2021/11/15 21:45
加载中...