首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言 main 函數參數、指向指針的指針與指針數組應用

     編輯:關於C語言

main 函數參數

main(int argc, char *argv[])
// 或
main(int argc, char **argv)
  • argc:命令行參數個數(含程序名)
  • argv:字符串指針數組,argv[0] 為程序名
  • 參數從命令行獲取:C:\>prog arg1 arg2

示例:顯示所有參數

main(int argc, char *argv[]) {
    while (argc-- > 1)
        printf("%s\n", *++argv);
}
// C:\>prog BASIC dBASE FORTRAN
// 輸出:BASIC / dBASE / FORTRAN

示例:參數作循環控制

#include 
main(int argc, char *argv[]) {
    int a = 0, n = atoi(*++argv);
    while (n--) printf("%d ", a++ * 2);
}
// 輸出 n 個偶數

指向指針的指針(二級指針)

int x = 10, *p = &x, **pp = &p;
printf("%d", **pp); // 10
  • **pp 等價 *(*pp) → *p → x
  • 間接訪問級數無硬性限制,建議 ≤ 2 級

指針數組遍歷示例

static char *ps[] = {"BASIC","DBASE","C","FORTRAN","PASCAL"};
char **pps;
for (int i = 0; i < 5; i++) {
    pps = ps + i;
    printf("%s\n", *pps);
}

函數指針 vs 指針函數

函數指針調用步驟

  1. 聲明:int (*pmax)();
  2. 賦值:pmax = max;
  3. 調用:z = (*pmax)(x, y);

注意:括號不可省,*pmax 非解引用而是語法標記。

指針型函數示例:星期名查找

char *day_name(int n) {
    static char *name[] = {"Illegal day","Monday",...,"Sunday"};
    return (n<1 || n>7) ? name[0] : name[n];
}

指針數組

元素為同類型指針的數組,常用於字符串數組、函數指針表(跳轉表)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
概念聲明含義
函數指針變量int (*p)();指向函數入口的指針變量
指針型函數int *p();返回指針的函數