首页IT科技字符型指针变量是什么((转)字符型指针变量与字符数组的区别)

字符型指针变量是什么((转)字符型指针变量与字符数组的区别)

时间2025-06-20 20:43:10分类IT科技浏览5056
导读:(转 字符型指针变量与字符数组的区别 (1)分配内存...

(转)字符型指针变量与字符数组的区别

(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)值的改变: 字符数组首地址不能改变 指针变量的值可以改变

由以上区别可以看出                   ,在某些情况下   ,用指针变量处理字符串               ,要比用数组处理字符串方便
?
1
原文链接:<a title="http://www.chang-hao.com/content.php?id=3" href="http://www.chang-hao.com/content.php?id=3">http://www.chang-hao.com/content.php?id=3</a>
声明:本站所有文章                    ,如无特殊说明或标注      ,均为本站原创发布。任何个人或组织           ,在未征得本站同意时                     ,禁止复制               、盗用                    、采集      、发布本站内容到任何网站           、书籍等各类媒体平台               。如若本站内容侵犯了原著者的合法权益         ,可联系我们进行处理                      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
css设置实线(css 实现虚线效果的3种方式详解)