第十节 字符串指针变量与字符数组的区别(十一)
用字符數(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ì)字符串指針?lè)绞?/span>
? ? 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)镃系統(tǒng)對(duì)指針變量賦值時(shí)要給以確定的地址。
因此,
? ? char *ps="C Langage";
或者
??? char *ps;
??? ps="C Language";
都是合法的。
轉(zhuǎn)載于:https://www.cnblogs.com/chunlanse2014/articles/4396094.html
總結(jié)
以上是生活随笔為你收集整理的第十节 字符串指针变量与字符数组的区别(十一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于Metasploit开发环境的搭建
- 下一篇: 转:Merge into的使用详解