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
最后执行效果是