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