在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) 整體引用
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)指標變數的值是可以改變的,字元指標變數也不例外;而陣列名代表陣列的起始地址,是一個常量,而常量是不能被改變的。
在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)指標變數的值是可以改變的,字元指標變數也不例外;而陣列名代表陣列的起始地址,是一個常量,而常量是不能被改變的。