main函数中的return
$ vi main.c
编写main函数的内容,main函数的注意其括号里拥有完整的参数
#include <stdio.h>
int main(int argv, char* argc[])
{
printf("hello world \n");
return 0;
}
第一条指令gcc执行成功就会接着执行main.out指令
$ gcc main.c -o main.out && ./main.out
hello world
$ ls
main.c main.out
// 若直接运行,也可以执行
$ ./main.out
hello world
如何判断是否正常执行?
每次编译之后输入echo $?
,若输出为0
,则表示程序正常执行
$ echo $?
0
main函数中的参数
copy 上述的main.c文件并编写新的文件
cp main.c main2.c
vi main2.c
这里我们试着打印出argv这个整数,需要系统进行传参,所以就有main函数里的参数
#include <stdio.h>
int main(int argv, char* argc[])
{
printf("argv is %d \n",argv);
return 0;
}
$ gcc main2.c -o main2.out
$ ls
main2.c main2.out main.c main.out
$ ./main2.out
argv is 1
我们可以知道argv应该是一个整数,但为什么是1呢,这里我们做个实验
$ ./main2.out
argv is 1
$ ./main2.out -l
argv is 2
$ ./main2.out -l -a
argv is 3
这里我们可以知道实际就是传的参数有几个,那么我们就要考虑我们不仅要知道有几个参数,还要知道参数的具体类型
$ cp main2.c main3.c
$ vi main3.c
编写代码如下,cat main3.c
可查看代码内容,其中%s表示字符串
#include <stdio.h>
int main(int argv, char* argc[])
{
printf("argv is %d \n",argv);
int i=0;
for(i=0;i<argv;i++)
{
printf("argc[%d] is %s\n", i, argc[i]);
}
return 0;
}
编译并验证
$ gcc main3.c -o m3.out
$ ls
m3.out main2.c main2.out main3.c main.c main.out
$ ./m3.out -l -a adsf sdg
argv is 5
argc[0] is ./m3.out
argc[1] is -l
argc[2] is -a
argc[3] is adsf
argc[4] is sdg
可看到我们输入了5个参数,并显示了5个参数的内容
学习结束啦!