参数在循环后丢失值
The parameter lost value after a loop
void genomicStatistic(int numberOfRow, int numberOfColumn, char arr[7][8]) {
int P[4][100];
char C[100];
int max = 0;
// 0. Set the initial value
for (int i = 0; i < numberOfRow; i++) {
for (int j = 0; j < numberOfColumn; j++) {
P[i][j] = 0;
cout << numberOfRow << endl;
cout << numberOfColumn << endl;
}
}}
void main() {
char arr[7][8]{
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
};
genomicStatistic(7, 8, arr); }
在//0. 处,我尝试设置数组的初始值,但在编译完成循环后,行数和列数为 0。我不明白为什么会发生这种情况,请帮忙。
int P[4][100];
是为第一个索引的0..3
中的值定义的。您使用 0..6
中的值。 无论如何,P
和C
都是多余的。
顺便说一句,您并没有真正使用C++。这是一种更C++的方式
#include <iostream>
#include <vector>
#include <string>
void genomicStatistic(const std::vector<std::vector<std::string>> &arr) {
for (const auto &row : arr) {
for (const auto item : row) {
std::cout << item << " ";
}
std::cout << std::endl;
}
}
void main() {
std::vector<std::vector<std::string>> arr{
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
};
genomicStatistic(arr);
}
因为你
使用副本,所以当你完成你的函数时,这个副本将删除(参数中的C和C++使用copy传递值不喜欢java或其他语言使用引用(,你应该在你的参数中使用引用或指针。
相关文章:
- C++中的高效循环缓冲区,它将被传递给C样式数组函数参数
- 带有多个独立参数的C++For循环
- 如何在不知道C++中有多少可选参数的情况下在循环中使用va_arg?
- 如何在没有可变参数函数的情况下循环函数的参数
- C++是否在 for 循环之前获取参数
- 循环访问多个模板参数的递归模板函数
- need else 参数只出现一次,无论在循环中输入多少字符串
- 为什么基于循环范围不直接在C 中使用参数阵列
- 使用 std::vector<Particle> 粒子;函数 .at() 不能与迭代器一起使用,它作为 for 循环中的参数
- 如何循环访问在 cmd 中获取参数的 exe 文件
- C++参数类型以接受适用于基于范围的 for 循环的所有序列
- 如何使用 int 参数循环访问模板函数
- 像在 Python 中一样C++循环中的参数解析。为什么不起作用?
- 为什么当数组作为调用方函数中的参数传递时,不能在被调用函数中使用 foreach 循环打印数组的值
- 参数在循环后丢失值
- 我的功能跳过C 中的循环参数
- 无法推断模板参数"循环类型"
- 模板参数中的循环依赖关系
- 在C++标准中,当我同时使用 list.begin() 作为 list.splice() 的第一个和第三个参数时,为什么会发生无限循环
- Initializer_list函数参数和函数中的 for 循环