使用字符串指針變量與字符數(shù)組的區(qū)別
用字符數(shù)組和字符指針變量都可實(shí)現(xiàn)字符串的存儲(chǔ)和運(yùn)算。 但是兩者是有區(qū)別的。在使用時(shí)應(yīng)注意以下幾個(gè)問(wèn)題:
1. 字符串指針變量本身是一個(gè)變量,用于存放字符串的首地址。而字符串本身是存放在以該首地址為首的一塊連續(xù)的
內(nèi)存空間中并以‘\0’作為串的結(jié)束。字符數(shù)組是由于若干個(gè)數(shù)組元素組成的,它可用來(lái)存放整個(gè)字符串。
2. 對(duì)字符數(shù)組作初始化賦值,必須采用外部類型或靜態(tài)類型,如: static char st[]={“C Language”};而對(duì)字符
串指針變量則無(wú)此限制,如: char *ps="C Language";
3. 對(duì)字符串指針?lè)绞?char *ps="C Language";可以寫(xiě)為: char *ps; ps="C Language";而對(duì)數(shù)組方式:
static char st[]={"C Language"};
不能寫(xiě)為:
char st[20];st={"C Language"};
而只能對(duì)字符數(shù)組的各元素逐個(gè)賦值。
從以上幾點(diǎn)可以看出字符串指針變量與字符數(shù)組在使用時(shí)的區(qū)別,同時(shí)也可看出使用指針變量更加方便。前面說(shuō)
過(guò),當(dāng)一個(gè)指針變量在未取得確定地址前使用是危險(xiǎn)的,容易引起錯(cuò)誤。但是對(duì)指針變量直接賦值是可以的。因?yàn)?C
系統(tǒng)對(duì)指針變量賦值時(shí)要給以確定的地址。因此,
char *ps="C Langage";
或者 char *ps;
ps="C Language";都是合法的。
2015年全國(guó)職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 | |
全國(guó)職稱計(jì)算機(jī)考試速成過(guò)關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書(shū)籍 |