Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 传递在main()中计数的变量的值_C - Fatal编程技术网

C 传递在main()中计数的变量的值

C 传递在main()中计数的变量的值,c,C,亲爱的, 你能帮我解决以下问题吗?我是C语言编程的高手。我在计算主函数中的值的数量。 我需要将这些值传递给另一个函数。例如 总的来说,a=5,b=10 int main() { a=5; b=10; } float f(float data[a][b], int i){ ... } 谢谢您的帮助。在C语言中,您通常希望使用大小为[n*m]的一维数组,而不是二维数组[n][m]。这些更容易传递和操作,只需要一点点的工作就可以得到正确的偏移量。在本例中,float*和两个大小参数就足以知道您在使用

亲爱的, 你能帮我解决以下问题吗?我是C语言编程的高手。我在计算主函数中的值的数量。 我需要将这些值传递给另一个函数。例如 总的来说,a=5,b=10

int main()
{
a=5;
b=10;
}
float f(float data[a][b], int i){
...
}

谢谢您的帮助。

在C语言中,您通常希望使用大小为
[n*m]
的一维数组,而不是二维数组
[n][m]
。这些更容易传递和操作,只需要一点点的工作就可以得到正确的偏移量。在本例中,
float*
和两个大小参数就足以知道您在使用什么,例如:

float f(浮点*数据,整数w,整数h,整数i){
// ...
}
你把它叫做:

int main(int argc,char**argv){
int w=5;
int h=10;
浮动数据[w*h];
f(数据,w,h,i);
返回0;
}
关于C,值得注意的是:

  • 参数是按值传入的,这意味着它们被复制。对于大型结构,如果按原样(而不是指针)传递它们,这可能会很痛苦
    float x[1024][1024]
    需要复制大量数据
    float*x
    对于相同的数据来说,只需要几个字节,这很简单
  • 函数应该接受它们需要的任何参数的参数。这是将数据从代码的一部分传递到另一部分的标准方式。它也有助于保持内容的完整性
  • 避免使用全局变量作为解决此问题的简单方法

这些是全局变量还是局部变量?谢谢您的帮助。我想使用双数组,因为我已经准备好了按列执行的不同函数。如果没有其他方法,我将尝试重写这些函数。您需要作为指针传入以使其高效工作。你可以通过值传递,但它会变得丑陋。