学点 C 语言(41): 函数 - 关于 main 函数
生活随笔
收集整理的這篇文章主要介紹了
学点 C 语言(41): 函数 - 关于 main 函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
main 函數是 C 程序的入口點, 不可或缺, 不可重復;
main 函數應返回一個整數值給操作系統, 返回 0 表示正常結束.
前面使用的 main 函數都是無參數的: int main(void);
main 可以有兩個參數: int main(int argc, char *argv[]);
第一個是自動獲取的參數數目(+1), 第二個是參數列表(字符串列表);
這一般用于控制臺或 dos 下,
在 Windows 下我們雙擊文件名打開文件時, 該文件名(包括路徑)也是通過這些參數傳遞的.
1. 獲取 main 函數第一個參數的默認值:
它會是 1; 我們并沒有給它參數呀? 原來它是把文件名當作第一個參數的.
#include <stdio.h>int main(int argc, char* argv[]) {printf("%d\n", argc); /* 1 */getchar();return 0; }
2. 獲取第一個參數(也就是文件名):
#include <stdio.h>int main(int argc, char* argv[]) {printf("%s\n", argv[0]);getchar();return 0; }
3. 給 main 函數建立并獲取參數列表:
如果是在控制臺或 dos 下, 在程序名后面輸入就是了, 現在呢?
C++Builder 菜單 -> Run -> Parameters... -> 在 Parameters 輸入測試參數(譬如: 11 22 33), 用空格隔開.
此對話框也可從 Project -> Project Options -> Debuger 進入.
#include <stdio.h>int main(int argc, char* argv[]) {int i;for (i = 1; i < argc; i++) {printf("%s\n", argv[i]); }printf("---\n");while (--argc) {printf("%s\n", argv[argc]); }getchar();return 0; }
4. 假如需要其他類型的參數:
main 的參數都是字符串的(或者說是字符指針的), 要使用其他類型的參數, 譬如 int、double 等, 只能轉換.
#include <stdio.h> #include <stdlib.h>int main(int argc, char* argv[]) {int I;long L;double D;I = atoi(argv[1]); /* 假定至少指定了一個參數 */L = atol(argv[1]);D = atof(argv[1]);printf("%d, %ld, %g\n", I, L, D);getchar();return 0; }
5. C++Builder 2009 中的 main 函數:
//標準的 main 函數: int main(int argc, char* argv[]) {return 0; }//C++Builder 2009 中的 main 函數: int _tmain(int argc, _TCHAR* argv[]) {return 0; }/* _tmain 是個 define, 在 tchar.h 中這樣定義: #define _tmain main 程序在預處理階段將會把它替換為: main_TCHAR 是重命名的 char 類型, 在 tchar.h 中這樣定義: typedef char _TCHAR;看來要想按照 C++Builder 2009 給的默認代碼使用, 是離不開 tchar.h 的.C++Builder 2009 為什么要這樣? 肯定有理由, 可我不知道. */
轉載于:https://www.cnblogs.com/del/archive/2008/12/05/1348072.html
總結
以上是生活随笔為你收集整理的学点 C 语言(41): 函数 - 关于 main 函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server-创建表格、各种约束
- 下一篇: 19日零时起降低成品油价格 燃油税元旦起