我知道静态和动态内存分配之间的区别。我也知道在编译时变量的长度可以确定时使用静态,而在运行时变量的长度不能确定时使用动态分配,但是命令行参数在这个范围内在哪里。我已经将c代码编译为机器代码,并且使用./a.out运行代码。我总是可以这样声明一个变量:int array [n]。对于一小段软件,是否静态声明数组还是动态声明数组都没有关系:double * array =(double *)malloc(n * sizeof(double))?
默认情况下,您将使用类似这样的内容:
int main(int argc, char *argv[]) {
...
}
命令行参数存储在一个名为argv
的char数组中,它的长度是一个称为argc
的整数。 Argv[0]
是程序名称。之后的所有内容都是命令行参数。
如果您想了解更多信息,建议您浏览文档。https://en.cppreference.com/w/cpp/language/main_function