我有一个这样的虚函数,
void Charge(float p[15][11], int cantPol){
cantPol = 0;
for(int i = 0; i < 15; i++){
for(int j = 0; j < 11; j++){
&p[i][j]
}
cantPol++;
}
cantPol;
}
函数调用
Charge(p, cantPol)
我可以像使用矩阵一样使用指针返回变形值'cantPol'吗?
最佳答案
它们是功能上的两种传递:按值传递和按变量传递。
此处的cantPol通过值传递,该值表示函数完成后将不会更改。
基本上是因为它将仅创建变量的副本,而不更改变量的副本。
现在,当您分配一个指针时,您将告诉编译器这是变量(* cantPol)的地址,意味着cantPol的内存@。
因此,在函数内部,它将转到右侧@并更改内部的值:变量cantPol的值。在这里您可以恢复cantPol的预期新值。这意味着cantPol是通过变量传递的。
您应该省略最后一行
cantPol;
这没有任何意义。
因此,您应该将void更改为:
void Charge(float p[15][11], int *cantPol)
{
*cantPol = 0;
for(int i = 0; i < 15; i++){
for(int j = 0; j < 11; j++){
&p[i][j]
}
(*cantPol)++;
}
printf("\n");
printf("\n");
printf("%i\n",*cantPol);
}
无需更改函数内的任何内容。
返回cantPol的另一种方法是将void转换为int函数,这意味着您将返回计算出的值。注意,这里不使用指针,但仍然可以获取计算值。
int Charge(float p[15][11], int cantPol)
{
cantPol = 0;
for(int i = 0; i < 15; i++){
for(int j = 0; j < 11; j++){
&p[i][j]
}
cantPol++;
}
printf("\n");
printf("\n");
printf("%i\n",cantPol);
return cantPol;
}
关于c - 如何从虚函数返回值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53533357/