前言
个人浅显理解,观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()函数
第一个数据,其定义的为一个字符常量指针,
还有就是关于这个函数
这个是值得我学习的,我们可以自己去探索一些东西,就比如在不知道数组名是数组数据中的首地址时,你可以试着打印其第一个数据的地址来进行对比,这样会有益我们的学习。