每次我用Xcode创建一个项目(标准命令行实用程序),我的 主要功能开始看起来像这样:
int main(int argc, const char * argv[])
括号中的所有内容是什么?为什么要使用它而不仅仅是
int main()
?
答案 0 :(得分:43)
main接收启动程序时传递给它的参数数量和参数,以便您可以访问它。
argc包含参数的数量,argv包含指向参数的指针。 argv [argc]始终是NULL指针。参数通常包括程序名称本身。
通常,如果您运行的程序如./myprogram
如果您运行的程序如./myprogram /tmp/somefile
答案 1 :(得分:4)
虽然标准没有涵盖,但在Windows和大多数Unix和Linux版本中,main
最多可以包含三个参数:
int main(int argc, char *argv[], char *envp[])
最后一个类似于argv
(这是一个字符串数组,如其他答案中所述,指定在命令行上传递的程序的参数。)
但它包含环境变量,例如PATH
或您在操作系统shell中设置的任何其他内容。它以null结尾,因此不需要提供count参数。
答案 2 :(得分:1)
这些是用于使用命令行中的参数 -
argc包含参数的数量 命令行(包括程序名),argv是列表 实际参数(表示为字符串)。
答案 3 :(得分:1)
这些用于传递命令行参数。
例如:如果您想从外部将文件名传递给您的流程,那么
myExe.exe "filename.txt"
命令行“filename.txt”将存储在argv []中,命令行参数(计数)将存储在argc中。
答案 4 :(得分:1)
main()是一个实际上可以取最多三个参数或没有参数的函数。 以下是main()可以采用的参数如下: -
1)int argc:它保存在程序执行期间传递的参数数量(来自命令提示符),或者可以说它用于跟踪程序执行期间传递的变量数量。它不能保持负值。例如。如果您传递可执行文件“./a.out”,那么它将被视为参数,因此argc值将为0,即传递1个值。
2)char * argv []:它是一个字符指针数组,它保存在程序执行期间从命令提示符传递的字符串(字符数组)的地址。例如。在上面的例子中,如果您在cout中编写了argv [argc],即argv [0],那么它会将./a.out作为输出。
3)char * envp []:它也是一个字符指针数组,用于保存程序中使用的环境变量的地址。环境变量是一组动态命名值,它可以影响正在运行的进程在计算机上的行为方式。例如,运行进程想要存储临时文件,然后它将调用TEMP环境变量以获得合适的位置。