C語言字串指標變數與字元陣列的區別

2021-06-21 04:14:54 字數 602 閱讀 6577

用字元陣列和字元指標變數都可實現字串的儲存和運算。但是兩者是有區別的。在使用時應注意以下幾個問題:

1) 字串指標變數本身是乙個變數,用於存放字串的首位址。而字串本身是存放在以該首位址為首的一塊連續的記憶體空間中並以『\0』作為串的結束。字元陣列是由於若干個陣列元素組成的,它可用來存放整個字串。

2) 對字串指標方式

char *ps="c language";

可以寫為:

char *ps;

ps="c language";

而對陣列方式:

static char st=;

不能寫為:

char st[20];

st=;

而只能對字元陣列的各元素逐個賦值。

從以上幾點可以看出字串指標變數與字元陣列在使用時的區別,同時也可看出使用指標變數更加方便。

前面說過,當乙個指標變數在未取得確定位址前使用是危險的,容易引起錯誤。但是對指標變數直接賦值是可以的。因為c系統對指標變數賦值時要給以確定的位址。

因此,char *ps="c langage";

或者char *ps;

ps="c language";

都是合法的。

C語言 陣列與指標 字元與字串

1 字元與字串 char c a 而不能寫出char c a 字元變數用單引號 而字串用雙引號。2 字元陣列與字元指標的初始化 char s 10 p strcpy s,hello word n 或者p hello word n 而不能用s hello word n y因s陣列名表示陣列的首位址是個...

C 字元 字串 字元陣列 字串指標 指標陣列

一 c 字元 字串 字元陣列 字串指標 指標陣列 前言 一 字元指標 字元陣列 二 字串指標 三 字串 指標陣列 四 常用方法 參考為了深入理解c 並時常回顧學過的知識點,對c 知識點進行記錄總結。參考1字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...

C 字串指標與字串陣列

在做面試100題中第21題時,發現char astr abcdefghijk 0 和char astr 有點區別,以前一直以為是一樣的,但是在該程式中採用字串指標執行一直出錯。後來在網上查查,果然發現大大的不同。分析 當你需要修改字串時,採用指標指向該字串編譯通過但是執行出錯,而採用字串陣列時不會出...