歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C語言 字符指針和字符數組的區別

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進行串復制 */
字符指針與字符數組的區別在使用中要特別注意。

Copyright © Linux教程網 All Rights Reserved