野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

【每日一题讲解】数组名加减的问题

查看数: 179830 | 评论数: 836 | 收藏 4
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-11-20 00:25

正文摘要:

本帖最后由 山外メ雲ジ 于 2013-11-20 00:31 编辑 //运行以下程序,求运算结果 char a[4]={1,2,3,4}; char *ptr=(int*)(&a+1); printf("%d",*(ptr-1)); //可供选择的答案: //A.1 //B.2 //C.4 //D.随机值 复制代码国际惯例 ...

回复

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

本版积分规则

回复 G28197 发表于 2020-5-13 16:19:56
过来学习学习
回复 flywhale 发表于 2020-5-13 15:55:39
没太看明白,int在8位单片机和32位单片机上应该表示不同的长度吧?
回复 xuanyusyj 发表于 2020-5-13 15:22:44
A吗?看看我想的对不对
回复 cctv180 发表于 2020-5-13 11:57:51
逻辑上认为是4,即答案为C,
回复 三叶草 发表于 2020-5-13 11:47:08
很明显答案是4,取最后一个元素值
回复 往生之地 发表于 2020-3-10 21:26:49
选择A.1这个答案
回复 皮卡兴 发表于 2020-2-22 20:07:11
A                                 
回复 xiaoyu123 发表于 2019-11-29 15:54:48
A。。。。。。。。
回复 御风行 发表于 2019-11-29 13:13:21
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
回复 tangyiwen 发表于 2019-11-29 10:58:36
4444444444
回复 liu521 发表于 2019-11-17 16:57:51
1.。。。。。。。。。。。。。。。。。
回复 1531133807 发表于 2019-11-8 16:08:29
看看答案                              
回复 jtb1111 发表于 2019-11-8 15:28:12

走过路过,不能错过
回复 qq173205779 发表于 2019-10-31 11:58:26
答案应该是4吧
回复 wx_Vj7r7O77 发表于 2019-10-25 09:55:50
A,ptr是指向a[1]的,然后*(ptr-1)就是a[0]的值,1
回复 plue 发表于 2019-10-23 11:05:47
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
回复 plue 发表于 2019-10-23 11:05:47
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
回复 plue 发表于 2019-10-23 11:05:47
CCCCCCCCCCCCCCCCCCC
回复 cangjie 发表于 2019-10-21 12:07:38
A吧,学习学习
回复 膜蛤 发表于 2019-10-20 14:00:40
A.1                        
回复 Jackis 发表于 2019-8-29 15:32:04
ptr = &a + 1; *(ptr-1)= *a;
回复 菜鸟学习 发表于 2019-8-29 15:08:32
1,,,,,,,,......
回复 0℃空气 发表于 2019-8-21 08:17:22
我会选A 但是感觉不对 有坑。。。。
回复 quanquan 发表于 2019-8-15 16:16:00
6666666666666666666666
回复 蒲公英-飘 发表于 2019-8-15 14:11:45
111111111111111
回复 不争么 发表于 2019-7-28 15:36:14
1                              
回复 会飞的鱼520 发表于 2019-7-28 10:19:06
基础不牢固呀,学习了
回复 bootblack 发表于 2019-6-10 19:59:19
答案是C,4
回复 小东哥 发表于 2019-6-10 19:03:49
&a+1   a代表的数组的地址   不是首地址了   选C
回复 linqi 发表于 2019-5-8 09:30:26
我还是选了A
回复 知易行难_ 发表于 2019-5-6 10:18:52
A....................
回复 Mr.Ren 发表于 2019-5-6 09:59:21
开始将 2 的地址赋值给了 p 减一应该输出1
回复 ZZZ_XXJ 发表于 2019-4-15 15:11:24
答案是C,第五行(int*)(&a+1)把数组a强制转换成32位整型,a地址加一就应该是加4个字节,所以执行完第五行*p应该是a[5]的值,然后因为*p是指向8位字符类型,所以*(p-1)还是减1个字节。不知道对不对,以上都是我猜的。
回复 1320217015 发表于 2019-4-12 18:18:44
cccccccccccccccccccccccccc
回复 鸡排菠萝油 发表于 2019-4-12 18:18:15
没看懂,ε=(′ο`*)))唉
回复 1256874530 发表于 2019-4-12 17:55:35
答案是什么
回复 xiaoguai 发表于 2019-4-12 16:44:13
答案 : c....
回复 519382868 发表于 2019-4-9 10:45:58
看看分析是否我想的那样
回复 WSTM 发表于 2019-3-29 09:13:50
D,&地址a,代表的是移动整个数组的长度,a,代表首元素首地址,a+1是移动一个元素的大小,故选D
回复 fighting佳 发表于 2019-3-28 19:21:02
取数组的地址加一的步进值是数据的长度,所以输出的应该是个不确定值吧
回复 、天空_kt2uF 发表于 2019-3-28 10:18:55
我选C,但有可能是D............
回复 uiofgh 发表于 2019-3-27 21:22:30
D
不知道是什么值,地址-1不等于数组前推
回复 xiaozhen16888 发表于 2019-3-27 17:05:39
感觉答案应该是D
回复 wx_yL226u6w 发表于 2019-3-15 17:17:56
【每日一题讲解】数组名加减的问题
回复 xudongqiang987 发表于 2019-3-15 14:47:23
aaaaaaaaaaaaaaaa
回复 胸有猛虎 发表于 2019-3-15 13:53:10
看答案      
回复 jxchen 发表于 2019-3-14 21:01:13
ans : 4  !!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 978041911 发表于 2019-3-7 15:16:48
&a+1实际上指向的是数组a的最后一个元素4的后面一个位置,所以结果为
C.4
回复 若语海洋 发表于 2019-2-18 09:50:33
是不是1呀哎呀呀不知道
回复 linccfzu 发表于 2019-2-14 10:16:43
aaaaaaaaaawfdf

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-23 22:00 , Processed in 0.032572 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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