c語言使用字符串指針變量與的區別

導語:用字符數組和字符指針變量都可實現字符串的存儲和運算。 但是兩者是有區別的。讓我們瞭解一下吧!

c語言使用字符串指針變量與的區別

1. 字符串指針變量本身是一個變量,用於存放字符串的首地址。而字符串本身是存放在以該首地址爲首的一塊連續的內存空間中並以‘/0’作爲串的結束。字符數組是由於若干個數組元素組成的,它可用來存放整個字符串。

2. 對字符數組作初始化賦值,必須採用外部類型或靜態類型,如: static char st[]={“C Language”};而對字符串指針變量則無此限制,如: char *ps="C Language";

3. 對字符串指針方式 char *ps="C Language";可以寫爲: char *ps; ps="C Language";而對數組方式:

static char st[]={"C Language"};

不能寫爲:

char st[20];st={"C Language"};

而只能對字符數組的各元素逐個賦值。

從以上幾點可以看出字符串指針變量與字符數組在使用時的區別,同時也可看出使用指針變量更加方便。前面說過,當一個指針變量在未取得確定地址前使用是危險的',容易引起錯誤。但是對指針變量直接賦值是可以的。因爲C系統對指針變量賦值時要給以確定的地址。因此,

char *ps="C Langage";

或者 char *ps;

ps="C Language";都是合法的。