鱼C论坛

 找回密码
 立即注册
查看: 921|回复: 18

[已解决]什么鬼???

[复制链接]
发表于 2020-4-10 15:49:39 | 显示全部楼层 |阅读模式

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

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

x
2. 请问 str[20] 是否可以写成 20[str]?

答:可以。

因为在访问数组的元素的时候,数组名被解释为数组第一个元素的地址。

所以 str[20] == *(str + 20) == *(20 + str) == [20]str

疑问
这和20【str】有什么关系
最佳答案
2020-4-10 19:54:55
本帖最后由 Cool_Breeze 于 2020-4-10 20:05 编辑
永恒的蓝色梦想 发表于 2020-4-10 19:10
我记得我很久以前看的基本书上都有写过……

这个解答写错了吧……


C语言参考手册里面有写这个!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-10 15:55:43 | 显示全部楼层
这是从哪里看来的。编译明显就通不过。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 15:56:13 | 显示全部楼层
C语言就是这样规定的啊。
str[20]就是和20[str]等价的。两种写法而已。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 15:57:49 | 显示全部楼层
sunrise085 发表于 2020-4-10 15:56
C语言就是这样规定的啊。
str[20]就是和20[str]等价的。两种写法而已。

请问你是从哪看来的。我也想了解下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 16:05:44 | 显示全部楼层
又测试了下,同样的代码又行了。
这太神奇了。意思确实一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 16:06:17 | 显示全部楼层
ba21 发表于 2020-4-10 15:57
请问你是从哪看来的。我也想了解下。

这个很多书上都有写吧……难道不是吗?

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
人造人 + 5 + 5 + 3 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-4-10 18:45:40 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-4-10 16:06
这个很多书上都有写吧……难道不是吗?

str[20] == *(str + 20) == *(20 + str) == [20]str
很多书上都有说吗?

回头再仔细一下。我就说嘛,怎么一下行一下不行。人家题目明明说的是20[str]
str[20] 是否可以写成 20[str] 。这个确实是可以的。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
人造人 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 19:02:46 | 显示全部楼层
这样也行哦!
  1. #include <stdio.h>
  2. int main(int argc, char** argv)
  3. {
  4.         int arr[10];
  5.         register unsigned char i=0;
  6.         for (i=0;i<10;i++) arr[i]=i;
  7.         for (i=0;i<10;i++) printf("%d\n",*(((int*)arr)+i));
  8.         return 0;
  9. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 19:10:00 | 显示全部楼层
ba21 发表于 2020-4-10 18:45
str[20] == *(str + 20) == *(20 + str) == [20]str
很多书上都有说吗?

我记得我很久以前看的基本书上都有写过……

这个解答写错了吧……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 19:25:21 | 显示全部楼层

你说的这个和提问有关吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 19:29:21 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-4-10 19:10
我记得我很久以前看的基本书上都有写过……

这个解答写错了吧……

这个str[20] 和 20[str] 确实都会学到;不过一般也不会这么写。所以不会记住。

提问者本身就把问题内容写错了。我想不应该是复制过来的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 19:33:31 | 显示全部楼层
ba21 发表于 2020-4-10 16:05
又测试了下,同样的代码又行了。
这太神奇了。意思确实一样。

小甲鱼的课后习题里面提到的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 19:53:17 | 显示全部楼层
ba21 发表于 2020-4-10 19:25
你说的这个和提问有关吗?

难道没有关系吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 19:54:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Cool_Breeze 于 2020-4-10 20:05 编辑
永恒的蓝色梦想 发表于 2020-4-10 19:10
我记得我很久以前看的基本书上都有写过……

这个解答写错了吧……


C语言参考手册里面有写这个!

C语言参考手册

C语言参考手册
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 20:03:32 | 显示全部楼层
Cool_Breeze 发表于 2020-4-10 19:53
难道没有关系吗?

没看出你发的代码和提问有关系。
[20]str 这个错误你还没有注意到?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 20:04:07 | 显示全部楼层
4goodworld 发表于 2020-4-10 19:33
小甲鱼的课后习题里面提到的

这个错误你也还没有注意到? [20]str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 20:19:36 | 显示全部楼层
本帖最后由 Cool_Breeze 于 2020-4-10 20:21 编辑
ba21 发表于 2020-4-10 20:03
没看出你发的代码和提问有关系。
[20]str 这个错误你还没有注意到?


他自己输入失误了!他前面都是这样写的20[str]!
他提的问也是20【str】是什么关系!
改一下就好了20[str]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 20:21:45 | 显示全部楼层
Cool_Breeze 发表于 2020-4-10 20:19
改一下就好了20[str]

那是,改下好了,不用你说也都知道。
问题是你注意到这个错误了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 20:23:00 | 显示全部楼层
ba21 发表于 2020-4-10 20:21
那是,改下好了,不用你说也都知道。
问题是你注意到这个错误了?

你管这个干吗呢?
楼主不是问这个吗?
疑问
这和20【str】有什么关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-1 16:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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