鱼C论坛

 找回密码
 立即注册
查看: 120|回复: 5

[已解决]指针和数组

[复制链接]
发表于 2021-11-19 00:13:49 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我可不可以将str理解成既是一个指针,又是一个数组,所以可以在for循环中的printf那一行,转化说明%c相对应的,才可以写成str,进行访问用指针定义的数组。
求助,大佬!!! Screenshot_20211119_000137.jpg
最佳答案
2021-11-19 17:54:46
本帖最后由 番杰 于 2021-11-19 17:58 编辑

你这理解也算是能自洽,
但是str[ i ]这种写法是有理可据的,

str[ i ]这种写法是一个语法糖(Syntactic sugar),具体可以看:什么是语法糖

就相当于*(str+i),就是对(str+i)进行解引用;
如果你指针这儿学的不错,那到这儿,应该也就能解答你的疑惑了,

但是,我还是说一下吧:
函数开始的时候,char *str = "i love fishc.com!"
这个就是定义里一个指针str,它指向的是"i love fishc.com!"这个字符串的首地址,同时也就是‘ i ’的地址,
让我们来假设,字符串的首地址为0,所以此时str指向地址0。

然后接着看for循环;
第一次 :i= 0时。打印str[0]的值,前面已经说了,它是一个语法糖,相当于*(str+0);刚才我们也假设了str指向的也是0,带入就有了*(0+0),所以相当于对地址0进行解引用,所以他的值就是‘ i ’。
第二次 :i = 1时,同理str[1],相到于*(0+1),也就是对地址1进行解引用,所以他的值就是‘  空格 ’。
后面每一次的一样,依次打印这个字符串,直到把这个字符串都打印完成,退出for循环。

结束函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-11-19 08:37:49 | 显示全部楼层
在这一题是可以的。当一个指针指向一个数组时,在某一层面它们是相等的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-11-19 10:09:19 | 显示全部楼层
  1. str理解成既是一个指针,又是一个数组
复制代码

  1. str[i]
复制代码
本身就是一个语法糖,这个写法的本质其实就是一个指针。他其实就是*(str+i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-11-19 15:24:31 | 显示全部楼层
来看看代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-11-19 15:53:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-11-19 17:54:46 | 显示全部楼层    本楼为最佳答案   
本帖最后由 番杰 于 2021-11-19 17:58 编辑

你这理解也算是能自洽,
但是str[ i ]这种写法是有理可据的,

str[ i ]这种写法是一个语法糖(Syntactic sugar),具体可以看:什么是语法糖

就相当于*(str+i),就是对(str+i)进行解引用;
如果你指针这儿学的不错,那到这儿,应该也就能解答你的疑惑了,

但是,我还是说一下吧:
函数开始的时候,char *str = "i love fishc.com!"
这个就是定义里一个指针str,它指向的是"i love fishc.com!"这个字符串的首地址,同时也就是‘ i ’的地址,
让我们来假设,字符串的首地址为0,所以此时str指向地址0。

然后接着看for循环;
第一次 :i= 0时。打印str[0]的值,前面已经说了,它是一个语法糖,相当于*(str+0);刚才我们也假设了str指向的也是0,带入就有了*(0+0),所以相当于对地址0进行解引用,所以他的值就是‘ i ’。
第二次 :i = 1时,同理str[1],相到于*(0+1),也就是对地址1进行解引用,所以他的值就是‘  空格 ’。
后面每一次的一样,依次打印这个字符串,直到把这个字符串都打印完成,退出for循环。

结束函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2021-12-2 00:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表