0.写在最前
最近因为工作需要开始重新学c语言,越学越发现c语言深不可测,当初用python轻轻松松处理的一些数据,但是c语言写起来却异常的复杂,这个板块就记录一下我的c语言复习之路
1. main函数的两种表现形式
main函数是c/cpp语言的入口函数,有且只能由一个,有点类似于python的
if __name__ == '__main__'
,c语言的main函数有两钟形式
- 第一个当然是我们非常常见的
int main()
,简单easy - 而第二种
int main(int argc, char *argv[]);
在某些场景也用的非常多,他允许程序运行时动态的给程序传入参数,从下图(大丙老师的图)我们可以看到当运行一个程序开辟一个进程空间时,会把argc
和argv
这两个参数传入。
2. 带参main函数的两个参数分别代表什么?
先说结论:
argc
表示传递的字符串的数目,argv
是一个指针数组,每个指针指向一个字符串(一份数据)且看以下结论
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("you input %d items\n", argc);
for(int i = 0; i < argc; i++)
{
printf("%s\n", argv[i]);
}
return 0;
}
打印结果为:
从这我们可以得出结论,argc传入得参数的数量,默认为1,argv存储传入参数的一个字符串数组,这个字符串数组的默认第一个元素是当前运行文件的路径,剩下的参数可以往后延伸(用空格隔开输入)
3. 使用示例
判断是否为偶数
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
printf("you input %d items\n", argc);
int num;
for(int i = 1; i < argc; i++)
{
num = atoi(argv[i]);
printf("%d is %s\n", num, (num % 2) ? "odd number": "even number");
}
return 0;
}