打印

【每日一题】C语言计算

[复制链接]
楼主: caijie001
手机看帖
扫描二维码
随时随地手机跟帖
21
caijie001 发表于 2018-4-8 21:40
版主,这个-1是什么意思啊,恕我愚钝,没见过

嘿嘿,这是我自己根据指针和数组访问等价,以及加法的交换律推出来的表达式~~~
*(p+n)等价p[n],根据加法交换律,可以推出
*(p+n)等于*(n+p)等价n[p],
从而得出*(p+1)等于p[1]等于1[p],嘿嘿

使用特权

评论回复
22
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这个数组在哪定义啊????不懂

使用特权

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

P=&V[0]+1;
跟P=V+1;
有什么差别的。

使用特权

评论回复
24
hennyliu| | 2018-4-9 08:33 | 只看该作者
结果

使用特权

评论回复
25
jszy1987| | 2018-4-9 08:45 | 只看该作者
9 11 110

使用特权

评论回复
26
dalarang| | 2018-4-9 08:49 | 只看该作者
9 9 11 110

使用特权

评论回复
27
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]了。

使用特权

评论回复
28
caijie001|  楼主 | 2018-4-9 08:57 | 只看该作者
computer00 发表于 2018-4-9 08:55
*(p+n)里面变量交换一下,就成了*(n+p)了。
所以原来的p[n]也跟着交换一下,就成了n了。 ...

这个原理我知道,但是n这个数组没定义吧

使用特权

评论回复
29
computer00| | 2018-4-9 09:00 | 只看该作者
caijie001 发表于 2018-4-9 08:57
这个原理我知道,但是n这个数组没定义吧

也许编译器在展开n[p]时转换成了*(n+p)的形式,然后就OK了吧~~~
不知道,没研究过编译器。我是按照自己的推理,试了一下居然OK。

使用特权

评论回复
30
877049204| | 2018-4-9 09:02 | 只看该作者
菜鸟来学习一下9,10,10,91

使用特权

评论回复
31
877049204| | 2018-4-9 09:06 | 只看该作者
打错了,学习一下考点:a++是先参加程序的运行再加1,++a是先加1再运行,a++的优先级高于乘法

使用特权

评论回复
32
gwpvip| | 2018-4-9 10:10 | 只看该作者
b,c,d:9,11,110

使用特权

评论回复
33
m564522634| | 2018-4-9 10:40 | 只看该作者
caijie001 发表于 2018-4-8 21:36
这是面试题,我仅仅是转载而已,我更不需要显摆。。。。

刚毕业那回还刷下这种题了面试有些SB公司喜欢考这种东西,如果有哪个工程师这么写基本上是一个弱智了, 楼主如果是面试刷下没什么问题,如果花精力研究的话就算了 你有那时间研究下其他多好搞这个。

使用特权

评论回复
34
whtwhtw| | 2018-4-9 11:03 | 只看该作者
牛X了

使用特权

评论回复
35
bioger2| | 2018-4-9 11:34 | 只看该作者
9,11, 110

使用特权

评论回复
36
yiilanying| | 2018-4-9 19:27 | 只看该作者
9  10  90

使用特权

评论回复
37
心明| | 2018-4-9 23:16 | 只看该作者
b, c, d:9,11,110

使用特权

评论回复
38
caijie001|  楼主 | 2018-4-9 23:36 | 只看该作者

使用特权

评论回复
39
李冬发| | 2018-4-10 00:18 | 只看该作者
computer00 发表于 2018-4-8 21:14
试试这个:
#include

-1[p]居然是-(1[p]),而不是(-1)[p]

使用特权

评论回复
40
laocuo1142| | 2018-4-10 08:34 | 只看该作者
看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则