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

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

时间2025-05-04 14:38:19分类IT科技浏览3975
导读:(转 字符型指针变量与字符数组的区别 (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
win7系统中,如何才能连接打印机打印文件(Win7系统中,如何才能连接打印机?) secure boot mode无法修改(Win8系统出现BIOS中Secure Boot无法更改的解决办法?)