(转)字符型指针变量与字符数组的区别
(1)分配內(nèi)存
設(shè)有定義字符型指針變量與字符數(shù)組的語(yǔ)句如下:
char *pc ,str[100];
則系統(tǒng)將為字符數(shù)組str分配100個(gè)字節(jié)的內(nèi)存單元,用于存放100個(gè)字符。而系統(tǒng)只為指針變量pc分配4個(gè)存儲(chǔ)單元,用于存放一個(gè)內(nèi)存單元的地址。
(2)初始化賦值含義
字符數(shù)組與字符指針變量的初始化賦值形式相同,但其含義不同。例如:
char str[ ] ="I am a student ! " ,s[200];
char *pc="You are a student ! " ;
對(duì)于字符數(shù)組,是將字符串放到為數(shù)組分配的存儲(chǔ)空間去,而對(duì)于字符型指針變量,是先將字符串存放到內(nèi)存,然后將存放字符串的內(nèi)存起始地址送到指針變量pc中。
(3)賦值方式
字符數(shù)組只能對(duì)其元素逐個(gè)賦值,而不能將字符串賦給字符數(shù)組名。對(duì)于字符指針變量,字符串地址可直接賦給字符指針變量。例如:
str="I love China! "; //字符數(shù)組名str不能直接賦值,該語(yǔ)句是錯(cuò)誤的。
pc="I love China! "; //指針變量pc可以直接賦字符串地址,語(yǔ)句正確
(4)輸入方式
可以將字符串直接輸入字符數(shù)組,而不能將字符串直接輸入指針變量。但可將指針變量所指字符串直接輸出。
例如: cin >> str //正確
cin >> pc //錯(cuò)誤
cout<<pc //正確
(5)值的改變
在程序執(zhí)行期間,字符數(shù)組名表示的起始地址是不能改變的,而指針變量的值是可以改變的。
例如:str=str+5; //錯(cuò)誤
pc=str+5; //正確
小結(jié) 字符數(shù)組s[100] 指針變量pc
(1)分配內(nèi)存 分配100個(gè)單元 分配4個(gè)單元。
(2)賦值含義 字符串放到數(shù)組存儲(chǔ)空間 先將字符串存放到內(nèi)存
將存放串的首地址送到pc中。
(3)賦值方式 只能逐個(gè)元素賦值 串地址可賦給pc
(4)輸入方式: 串直接輸入字符數(shù)組 不能將字符串直接輸入指針變量
(5)值的改變: 字符數(shù)組首地址不能改變 指針變量的值可以改變
由以上區(qū)別可以看出,在某些情況下,用指針變量處理字符串,要比用數(shù)組處理字符串方便
轉(zhuǎn)載于:https://www.cnblogs.com/ForFreeDom/archive/2012/05/12/2496985.html
總結(jié)
以上是生活随笔為你收集整理的(转)字符型指针变量与字符数组的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel文件读写操作(一)
- 下一篇: Burt’s Bees 小蜜蜂纯天然杏仁