回覆列表
  • 1 # 使用者5295278951632

    在C語言中,既可以用字元陣列表示字串,也可用字元指標變數來表示;引用時,既可以逐個字元引用,也可以整體引用。

    字串在記憶體中的起始地址稱為字串的指標,可以定義一個字元指標變數指向一個字串。

    1. 定義字元指標變數

    ps1="form one";

    char *ps1="form one";

    l char str[ ]= "form one", *ps1;

    ps1=str;

    注意: 字元指標變數ps1中,僅儲存串常量的地址,而串常量的內容(即字串本身),是儲存在由系統自動開闢的記憶體塊中,並在串尾新增一個結束標誌’\0’。

    2. 引用

    1)逐個引用

    main()

    { char *string="I am fine.";

    for(; *string!=’\0’; string++)

    printf("%c", *string);

    printf("\n");

    }

    2) 整體引用

    main()

    { char *string="I am fine.";

    printf("%s\n",string);

    }

    程式說明:printf("%s\n",string);語句

    透過指向字串的指標變數string,整體引用它所指向的字串的原理:系統首先輸出string指向的第一個字元,然後使string自動加1,使之指向下一個字元;重複上述過程,直至遇到字串結束標誌。

    其它型別的陣列,是不能用陣列名來一次性輸出它的全部元素的,只能逐個元素輸出。

    3.字元指標變數與字元陣列之比較

    雖然用字元指標變數和字元陣列都能實現字串的儲存和處理,但二者有區別.

    (1)儲存內容不同。

    字元指標變數中儲存的是字串的首地址,而字元陣列中儲存的是字串本身(陣列的每個元素存放一個字元)。

    (2)賦值方式不同。

    對字元指標變數,可採用下面的賦值語句賦值:

    char *pointer;

    pointer="This is a example.";

    而字元陣列是在定義時初始化。

    char char_array[20]="This is a example."

    (3)指標變數的值是可以改變的,字元指標變數也不例外;而陣列名代表陣列的起始地址,是一個常量,而常量是不能被改變的。

  • 中秋節和大豐收的關聯?
  • 露從今夜白下一句是什麼?