C語言 字元指標和字元陣列的區別

2021-09-30 10:01:41 字數 978 閱讀 3589

char *str = "this is a string.";

是對字元指標進行初始化。此時,字元指標指向的是乙個字串常量的首位址,即指向字串的首位址。

這裡要注意字元指標與字元陣列之間的區別。例如,有說明語句:

char string[ ]="this is a string.";

此時,string是字元陣列,它存放了乙個字串。

字元指標str與字元陣列string的區別是:str是乙個變數,可以改變str使它指向不同的字串,但不能改變str所指的字串常量。string是乙個陣列,可以改變陣列中儲存的內容。

如果有:

char *str, *str1="this is another string.";

char string[100]="this is a string.";

則在在程式中,可以使用如下語句:

str++; /* 指標str加1 */

str = "this is a new string."; /* 使指標指向新的字串常量 */

str = str1; /* 改變指標str的指向 */

strcpy( string, "this is a new string.") /* 改變字串的的內容 */

strcat( string, str) /* 進行串連線操作 */

在程式中,不能進行如下操作:

string++; /* 不能對陣列名進行++運算 */

string = "this is a new string."; /* 錯誤的串操作 */

string = str1; /* 對陣列名不能進行賦值 */

strcat(str, "this is a new string.") /* 不能在str的後面進行串連線 */

strcpy(str, string) /* 不能向str進行串複製 */

字元指標與字元陣列的區別在使用中要特別注意。

C語言 字元指標和字元陣列的區別

在日常敲 的過程中我們會遇見這樣乙個問題 例子1 void mian void mian 例子2 這裡我們換成乙個指標,對指標int a賦值,則不需要加取位址符號 原因不難理解,上乙個例子對a賦值需要其位址,所以我們需要加 而這裡指標int a本身就是乙個位址,所以沒必要再加 取指標變數a本身的位址...

字元陣列和字元指標的區別

在c語言中,對字串的操作主要有兩種方式,一是使用字元陣列,char str 二是使用字元指標。那麼二者有什麼區別呢?下面將分述二者的使用,最後進行比較。一 字元陣列 使用char str定義乙個字元陣列str,中括號內可以寫上數字表示陣列大小,也可以不寫。如果不寫數字,則必須為字元陣列提供初始值,以...

C語言中字元指標與字元陣列的區別

char是用來儲存單個字元的 例如 char ch a char是用來儲存多個字元的 例如 char ch 5 陣列本質上就是同時定義了多個變數,並對變數進行初始化當char最後乙個字元為 0 的時候,這是乙個字串 例如 char ch 6 字串也可以寫成 char ch 6 hello char ...