C语言中的main函数参数作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的main函数参数作用相关的知识,希望对你有一定的参考价值。

刚开始学习C语言 看了main函数参数的作用 实有不解。不明白argc和argv的作用 。。。。。求科普!!!!!!!!!!!!!!!!!!!11

在调用可执行程序时,可以通过main函数的参数将命令行的调用参数传递给main函数。

事实上,main()函数既可以是无参函数,也可以是有参的函数。对于有参的形式来说,就需要向其传递参数。

从函数参数的形式上看,包含一个整型和一个指向字符指针的指针。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件(对windows操作系统而言),这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。由系统在启动运行时传递参数。

在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:

命令参数1参数2....参数nt;

此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。

命令行与main()函数的参数存在如下的关系:

设命令行为:program str1 str2 str3 str4 str5

扩展资料:

main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。

如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。

也就是说在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)。

参考资料来源:百度百科-main函数

参考技术A 这是命令行参数
argc是命令行参数的数量,argv是具体的参数

举个例子:
比如你通过命令行运行一个exe文件,并在后面加上一些参数
c:\test.exe -window - test
然后对于这个test.exe来说,argc就是2,argv[0]和argv[1]分别是“-window”和“- test”
有些软件接受不同参数运行就是通过判断这个做出来的

然后,比如你对一个txt文件点右键,选择打开方式为用test.exe打开
那么这是argc是1,argv[0]就是这个打开的txt文件的路径本回答被提问者和网友采纳
参考技术B argc是参数个数,定义为intargv是字符串数组,存的是参数,定义为char**或者char* argv[]比如你编译好的程序为my.exe在命令行执行 my.exe 1 2 3那argc就是4,argv[0]是"my.exe",argv[1]是"1",argv[2]是"2",argv[3]是"3";
main为主函数,相当于皇帝,只有一个,下面可以有多个子函数,相当于子民
参考技术C 当你要让程序运行的时候,如果想预先(初始化)或者随时改变一些数据
就用参数
main的就是运行时,程序名后面可以直接带的参数.在windows下面不明显,命令行方式,你就容易理解了.
argc是说后面有几个参数,argv是参数.
以后你会明白的.

C语言 main 函数参数 main(int argc, char *argv[])

目录

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.main 函数写法

在 C99 标准中定义 main 函数两种正确的写法

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 main 函数参数 main(int argc, char *argv[])
//@Time:2021/07/16 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/


int main(void) { /* ... */ }

int main(int argc, char *argv[]) { /* ... */ }

二.main 函数参数简介

/*
参数介绍
argc : main函数参数个数,当参数为void的时,argc=1,默认参数为可执行文件名
argv : 指针数组,分别指向个参数字符串首地址,其中argv[0]指向默认参数
*/
int main(int argc, char *argv[]) { /* ... */ }

默认情况下,argc 值为 1,表示 argv[0] 当前工程可执行文件的文件名;后面的参数从 arg[1] 开始都按顺序存放在字符数组中,argc 数至少是 1 个;

三.使用 main 函数参数

1.打印 main 函数参数

避免控制台程序一闪而过,我们可以使用 **system(“pause”) **等待用户输入后,在结束程序;

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 main 函数参数 main(int argc, char *argv[])
//@Time:2021/07/16 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include <stdio.h>
#include <windows.h>

int main(int argc,char *argv[])
{
  int ii=0;

  // 显示参数的个数
  printf("argc is %d\\n",argc);

  // 列出全部的参数
  for (ii=0;ii<argc;ii++)
  {
    printf("argv[%d] is %s\\n",ii,argv[ii]);
  }
  system("pause");
}
/*
输出:

argc is 1
argv[0] is C:\\Users\\Administrator\\Desktop\\mainFunc\\Debug\\mainFunc.exe
请按任意键继续. . .
*/

默认情况下,argc 值为 1,表示 argv[0] 当前工程可执行文件的文件名

a.直接运行 exe 文件

argc is 1
argv[0] is C:\\Users\\Administrator\\Desktop\\mainFunc\\Debug\\mainFunc.exe
请按任意键继续. . .

b.打开 cmd 命令行窗口执行 exe 文件

c.打开 cmd 命令行窗口执行 exe 文件并设置 main 函数参数

注意:exe 和后面每一个参数之间有空格隔开;

2.使用 main 函数参数

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 main 函数参数 main(int argc, char *argv[])
//@Time:2021/07/16 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void Add(int a, int b)
{
	printf("%d\\n", a + b);
}

void Mul(int a, int b)
{
	printf("%d\\n", a*b);
}

void Sub(int a, int b)
{
	printf("%d\\n", a - b);
}

void Div(int a, int b)
{
	printf("%d\\n", a / b);
}

int main(int argc, char *argv[])
{
	if (argc < 4)
	{
		printf("输入格式错误,请按照指定格式输入,例如:xxx.exe -a 4 5 \\n");
		system("pause");
		return 0;
	}

	int a = atoi(argv[2]);
	int b = atoi(argv[3]);
	if (strcmp("-a", argv[1]) == 0)
	{
		Add(a, b);
	}
	else if (strcmp("-s", argv[1]) == 0)
	{
		Sub(a, b);
	}
	else if (strcmp("-m", argv[1]) == 0)
	{
		Mul(a, b);
	}
	else if (strcmp("-d", argv[1]) == 0)
	{
		Div(a, b);
	}
	system("pause");
	return 0;
}
/*
直接执行exe文件会提示:

输入格式错误,请按照指定格式输入,例如:xxx.exe -a 4 5
请按任意键继续. . .

报错是因为我们没有为 main 函数设置输入参数,打开 cmd 窗口设置参数即可!!
*/

注意:exe 和后面每一个参数之间有空格隔开;

三.猜你喜欢

  1. C 语言 数组下标越界和内存溢出区别
  2. C 语言 使用指针遍历数组
  3. C 语言 指针和数组区别
  4. C 语言 指针数组和数组指针区别
  5. C 语言 野指针
  6. C 语言 函数值传递和址传递
  7. C 语言 函数不定长参数
  8. C 语言 函数指针
  9. C 语言 指针函数
  10. C 语言 回调函数 callback
  11. C 语言 #pragma once
  12. C 语言 #include <> 与 #include “” 区别
  13. C 语言 const 修饰函数参数
  14. C 语言 const 和 define 区别
  15. C 语言 #运算符
  16. C 语言 ##运算符
  17. C 语言 __VA_ARGS__
  18. C 语言 ##__VA_ARGS__
  19. C 语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C 语言 va_start 宏
  21. C 语言 va_end 宏
  22. C 语言 va_arg 宏
  23. C 语言 vprintf 函数
  24. C 语言 va_start / va_end / va_arg 自定义 printf 函数
  25. C 语言 main 函数
  26. C 语言 main 函数参数 main(int argc, char *argv[])

未经允许不得转载:猿说编程 » C 语言 main 函数参数 main(int argc, char *argv[])

本文由博客 - 猿说编程 猿说编程 发布!

以上是关于C语言中的main函数参数作用的主要内容,如果未能解决你的问题,请参考以下文章

关于VC++的Winmain函数(WINAPI是啥?)

关于VC++的Winmain函数(WINAPI是啥?)

linux下,在调用main函数之前怎样得到命令行参数argc和argv

C语言中main函数的参数

linux c 的main 函数中的return 和 查看返回参数 argv 与 argc 作用

main是啥意思,在C语言中又是啥意思