【每日一题】C语言计算

[复制链接]
5438|49
computer00 发表于 2018-4-8 21:52 | 显示全部楼层
caijie001 发表于 2018-4-8 21:40
版主,这个-1是什么意思啊,恕我愚钝,没见过

嘿嘿,这是我自己根据指针和数组访问等价,以及加法的交换律推出来的表达式~~~
*(p+n)等价p[n],根据加法交换律,可以推出
*(p+n)等于*(n+p)等价n[p],
从而得出*(p+1)等于p[1]等于1[p],嘿嘿
 楼主| caijie001 发表于 2018-4-8 21:59 | 显示全部楼层
computer00 发表于 2018-4-8 21:52
嘿嘿,这是我自己根据指针和数组访问等价,以及加法的交换律推出来的表达式~~~
*(p+n)等价p[n],根据 ...

int *p = 0;
那p+1 = 4

*(p+n)等价p[n]

那n[p]这种n这个数组在哪定义啊????不懂

评论

@caijie001 :不用纠结  发表于 2018-4-9 13:54
@皈依 :一般都不用这种写法  发表于 2018-4-9 12:15
语法糖  发表于 2018-4-9 12:04
zyj9490 发表于 2018-4-8 22:04 | 显示全部楼层
computer00 发表于 2018-4-8 21:52
嘿嘿,这是我自己根据指针和数组访问等价,以及加法的交换律推出来的表达式~~~
*(p+n)等价p[n],根据 ...

P=&V[0]+1;
跟P=V+1;
有什么差别的。
hennyliu 发表于 2018-4-9 08:33 | 显示全部楼层
jszy1987 发表于 2018-4-9 08:45 | 显示全部楼层
9 11 110
dalarang 发表于 2018-4-9 08:49 | 显示全部楼层
9 9 11 110
computer00 发表于 2018-4-9 08:55 | 显示全部楼层
caijie001 发表于 2018-4-8 21:59
int *p = 0;
那p+1 = 4

*(p+n)里面变量交换一下,就成了*(n+p)了。
所以原来的p[n]也跟着交换一下,就成了n[p]了。
 楼主| caijie001 发表于 2018-4-9 08:57 | 显示全部楼层
computer00 发表于 2018-4-9 08:55
*(p+n)里面变量交换一下,就成了*(n+p)了。
所以原来的p[n]也跟着交换一下,就成了n了。 ...

这个原理我知道,但是n这个数组没定义吧
computer00 发表于 2018-4-9 09:00 | 显示全部楼层
caijie001 发表于 2018-4-9 08:57
这个原理我知道,但是n这个数组没定义吧

也许编译器在展开n[p]时转换成了*(n+p)的形式,然后就OK了吧~~~
不知道,没研究过编译器。我是按照自己的推理,试了一下居然OK。
877049204 发表于 2018-4-9 09:02 | 显示全部楼层
菜鸟来学习一下9,10,10,91
877049204 发表于 2018-4-9 09:06 | 显示全部楼层
打错了,学习一下考点:a++是先参加程序的运行再加1,++a是先加1再运行,a++的优先级高于乘法
gwpvip 发表于 2018-4-9 10:10 | 显示全部楼层
b,c,d:9,11,110
m564522634 发表于 2018-4-9 10:40 | 显示全部楼层
caijie001 发表于 2018-4-8 21:36
这是面试题,我仅仅是转载而已,我更不需要显摆。。。。

刚毕业那回还刷下这种题了面试有些SB公司喜欢考这种东西,如果有哪个工程师这么写基本上是一个弱智了, 楼主如果是面试刷下没什么问题,如果花精力研究的话就算了 你有那时间研究下其他多好搞这个。
whtwhtw 发表于 2018-4-9 11:03 | 显示全部楼层
bioger2 发表于 2018-4-9 11:34 | 显示全部楼层
9,11, 110
yiilanying 发表于 2018-4-9 19:27 | 显示全部楼层
9  10  90
心明 发表于 2018-4-9 23:16 | 显示全部楼层
b, c, d:9,11,110
 楼主| caijie001 发表于 2018-4-9 23:36 | 显示全部楼层
李冬发 发表于 2018-4-10 00:18 | 显示全部楼层
computer00 发表于 2018-4-8 21:14
试试这个:
#include

-1[p]居然是-(1[p]),而不是(-1)[p]
laocuo1142 发表于 2018-4-10 08:34 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部