一、重新認識C語言
1.1重新認識main函數
#include <stdio.h>
int main(int argc, char *argv[])
{
return 0;
}
大家都知道,C語言中編譯器都是識別main函數爲所有函數的入口。而對於上面這段最基礎,最常見的代碼,很多人可能都不太清楚main函數中爲何要傳入這樣的兩個參數。這兩個參數具體什麼含義呢?(最早先的main函數可能會定義爲void類型,現在都不提倡使用void類型,一般都默認使用Int類型)。
1.1.1main函數中兩個入參含義
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
printf("The value of argc is %d \n", argc);
for(i=0; i< argc; i++)
{
printf("The value of argv is %s\n", argv[i]);
}
return 0;
}
首先編譯我們編寫的main.c文件,gcc main.c -o main.out
然後我們執行main.out時,可以附帶一些參數。比如 ./main.out -l -h
root@Linux:Clanguage# ./main.out -l -h
The value of argc is 3
The value of argv is ./main.out
The value of argv is -l
The value of argv is -h
argc:argument count //表示的是執行main.out程序時,參數的個數
argv:argment vector //表示的是執行main.out程序時,參數的內容
1.1.2main函數中return返回值得含義
有些人可能不明白,爲什麼現在的C語言中要求我們寫main函數時,需要指定返回值(以前的定義爲void類型)。其實本質是,爲了表明程序是否正確運行。
我們在編譯後,執行main.out文件後,其實有生成一些影藏文件,用來表明程序是否執行成功;
在我們這裏,程序執行成功,我們可以通過echo $? 來查看程序是否執行成功,若成功則返回0;
root@Linux:Clanguage# echo $?
0