字符串和字符数组,其与指针关系

前言

个人浅显理解,观lellansin视频有感。

字符串和字符数组

1,字符数组名就是数组的首地址
在这里插入图片描述
这里和普通变量不同,普通变量只能通过取地址符得到地址,数组可以通过数组名和取地址符。
在这里插入图片描述

补充,字符数组名地址+1得到下一数据的地址,字符数组名取地址+1得到是数据的末地址,也就是下一个元数据的首地址。在这里插入图片描述

2,字符串==字符数组

"hello world"<==>char c[]={"hello world"};

就算你现在还不理解,那看看几个程序,对比来看

字符数组
在这里插入图片描述
字符数组的地址是第数据中的首地址,对应下标可以取到对应值

字符串
在这里插入图片描述

字符串本身就是一个地址,数据中的首地址,字符串它的本身就相当于字符数组名,数组可以的操作,字符串也都可以。

字符串和字符数组与指针关系

字符数组常规遍历
在这里插入图片描述
字符串遍历
不知道字符串本身就是其数据首地址前
在这里插入图片描述
知道后便可以将&(“hello wlord”[0])换成"hello wlord"

字符数组遍历
再不知道字符数组名就是首地址前
在这里插入图片描述
同理,可将可以把&c[0]换成c

在这里插入图片描述
这里就可得到一个结论

*c==c[0]
*(c+1)==c[1]
*(c+2)==c[2]
*(c+n)==c[n]

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
视频是这样写的,我觉得我写这样容易理解点。
在这里插入图片描述

关于printfa()函数
在这里插入图片描述

在这里插入图片描述
第一个数据,其定义的为一个字符常量指针,
在这里插入图片描述
还有就是关于这个函数
在这里插入图片描述
这个是值得我学习的,我们可以自己去探索一些东西,就比如在不知道数组名是数组数据中的首地址时,你可以试着打印其第一个数据的地址来进行对比,这样会有益我们的学习。

在这里插入图片描述

  • 14
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值