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

Posted 猿说编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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[])

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

int main(int argc,char* argv[])详解

main函数的参数:


  main函数一般都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:main (int argc,char *argv[])

  于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。

  所以我们有以下两种方式将参数传递给main函数(其中我们要注意的是argc是后面的*argv[]字符串的个数,它是系统自动赋予的,自动赋予的还有*argv[0]存放着文件的名字,需要我们赋值的是*argv[1],*argv[2],*argv[3]。。。。等等)

  1. 第一种方式是在编译环境中设置,以vs2012为例,右击项目—>属性—>配置属性—>调试—>命令参数,在命令参数中输入,每个参数之间用空格隔开。技术分享图片

  2. 第二种方式也是经常会用到的方式是通过命令提示符传入。首先需要打开命令提示符窗口,点击开始菜单在“搜索程序和文件”里输入命令“cmd”或者直接按快捷键 Windows+R,在弹出的对话框里输入“cmd”即可打开命令提示符窗口:

技术分享图片

 

 

 

 

 

 

 

 

 

打开命令提示符窗口后需要输入生成的exe文件所在的完整路径,一个简便的方法是把exe文件直接拖入提示符窗口即可,之后输入传入参数,以空格分隔,之后回车

 


以上是关于C语言 main 函数参数 main(int argc, char *argv[])的主要内容,如果未能解决你的问题,请参考以下文章

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

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

C语言中 main 是啥意思?详细的啊

C语言中的“main”可以用别的字母代替吗?比如“mai”或"ain"等。

带参数的main函数,应该怎样运行呢

C语言 main()前可以放哪些限定的函数!?