我无法正确获取这些变量声明...为什么这些参数不起作用?我只是将n
值设置为数组长度。
为什么编译器可以理解变量声明?
void diag(int n, double a[n][n], double b[n],double x[n]){
for(int i = 1; i <= n; i++){
x[i] = b[i]/a[i][i];
}
return x;
}
答案 0 :(得分:1)
您必须在数组上使用动态数组(例如std :: vector)或指针。在C ++中,编译时不能使用大小未知的数组('n'不知道)。
答案 1 :(得分:1)
这不是合法的C ++或与其类似的任何东西。数组必须在编译时知道其维数,如果将一个维传递给函数,则必须指定除最里面的维之外的所有维。
此外,参数名称不在其他参数声明的范围内。 (这就是您所犯的错误)。
如果要使用在编译时未知维的“数组”,则可以使用std::vector
,它是连续的可调整大小的数组。