浅谈C语言主函数参数

C语言主函数参数

C语言的主函数,恐怕稍微学过点C语言的人都知道是主函数是什么,从我们第一天开始学C语言的时候就知道不管写什么程序,总之先写这一段就对了。

#include<stdio.h>
int main()
{
	return 0;
}

虽然有些地方在教的时候是void main()或者直接main()如此然后直接写后面的,但是在这里我不建议这么写,首先他是不标准的,其次在少数的开发环境中写成void main()是会报错的(我曾经就遇到过这样的坑,具体是哪个开发环境忘记了)!切忌!切忌!切忌!

我们在写C代码的时候都是习惯性的新建空项目然后自己添加.cpp文件,但是可能有部分人习惯直接新建控制台程序,然后可能就会看到这么一段代码

#include<stdio.h>
int main(int argc,char *argv[])				//char *argv[]有时也可能是char **argv
{
	return 0;
}

那肯定就会有人问mian函数里的两个参数是什么,有什么用,怎么用。那两个参数是负责接收指令行参数的,很多在linux gcc或者g++下编译过c程序的人都知道他的指令格式是:

gcc 源文件名 -o 生成文件名

没错这里的”源文件名“、“-o”、“生成文件名”都是指令行参数。口说无凭,直接上代码:

#include<stdio.h>
int main(int argc,char*argv[])
{
	printf("%d\n",argc);
	for(int i=0;i<argc;i++)
		printf("%s\n",argv[i]);
	return 0;
}

在这里先简单写一个小代码,相信能看到这里的,基本上也都能看得懂这段代码
然后让我们在控制台下执行这个生成的程序并附上参数
(说明:这里的c 就是我编译生成的程序,因为我的系统环境是kali linux所以与windows略有不同,但是程序执行效果是相同的)运行结果如下(a.c是我的源程序名):
在这里插入图片描述
从上图的执行结果可以得到一个结论,main函数的第一个参数是指令行参数的个数(因为包括输入的文件名,所以这里是4),而第二个参数就是你要传给程序的参数字符串了。
根据上面的执行结果还可以判断出,它会将空格作为参数之间的分割符不管你之间隔几个空格,只要有空格他就视为一个参数结束,例如执行我这里生成的程序:

./c                              aa     bb cc

./c aa bb cc

是完全一样的结果
除此之外,还要提到一点,它会将\符号视为完全不存在例如在执行程序时输入:

./c aa\bb cc

最后执行效果是
在这里插入图片描述

发布了13 篇原创文章 · 获赞 28 · 访问量 8507

猜你喜欢

转载自blog.csdn.net/weixin_43815930/article/details/88558991