野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 山外メ雲ジ

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

  [复制链接]
发表于 2015-1-27 14:54:29 | 显示全部楼层
学习了~~~~~~
回复

使用道具 举报

发表于 2015-1-29 14:18:09 | 显示全部楼层
谢火哥  我不会
回复 支持 反对

使用道具 举报

发表于 2015-1-30 00:15:47 | 显示全部楼层
写的真的很不错
回复 支持 反对

使用道具 举报

发表于 2015-1-30 09:21:13 | 显示全部楼层
来看看答案
回复 支持 反对

使用道具 举报

发表于 2015-1-30 11:22:23 | 显示全部楼层
应该选B拔!!!!
回复

使用道具 举报

发表于 2015-1-31 13:20:54 | 显示全部楼层
看一下,为什么
回复 支持 反对

使用道具 举报

发表于 2015-1-31 15:09:15 | 显示全部楼层
我感觉是1
回复

使用道具 举报

发表于 2015-1-31 19:42:16 | 显示全部楼层
不对啊啊啊
回复 支持 反对

使用道具 举报

发表于 2015-2-5 15:03:29 | 显示全部楼层
赞一个。。。。。
回复

使用道具 举报

发表于 2015-2-6 09:44:24 | 显示全部楼层
11 . / /C . 4
回复

使用道具 举报

发表于 2015-2-15 19:52:58 | 显示全部楼层
dddddddddddd
回复 支持 反对

使用道具 举报

发表于 2015-2-26 14:31:35 | 显示全部楼层
C,对不对?
回复

使用道具 举报

发表于 2015-3-3 09:03:38 | 显示全部楼层
结果是4,答案是C,对一个数组本身的地址,即&a,加1,则ptr会跳到下一个数组的首地址,即指向a[4]这个元素的首地址,但是这个a[4]元素是不在数组a范围内的,可以读这个地址,但写的话,可能会造成使用该地址的其他程序出错。将此处的地址强制转换为char类型指针后,ptr-1则刚好对应数组a的最后一个元素地址,取其值则为4。
回复 支持 反对

使用道具 举报

发表于 2015-3-5 08:42:03 | 显示全部楼层
1ma?......
回复

使用道具 举报

发表于 2015-3-5 10:21:24 | 显示全部楼层
1              ..
回复 支持 反对

使用道具 举报

发表于 2015-3-6 11:03:43 | 显示全部楼层
llllllllllllllllll
回复 支持 反对

使用道具 举报

发表于 2015-3-8 12:27:08 | 显示全部楼层
没见过这种形式的,无从下手,看看答案汲取一下知识吧
回复 支持 反对

使用道具 举报

发表于 2015-3-8 14:37:35 | 显示全部楼层
我觉得应该是D吧?
回复 支持 反对

使用道具 举报

发表于 2015-3-8 20:38:24 | 显示全部楼层
看看答案                                      
回复 支持 反对

使用道具 举报

发表于 2015-3-10 13:31:06 | 显示全部楼层
感觉数组名就表示数组的首地址,再取地址,就不知道是什么了?应该选D
回复 支持 反对

使用道具 举报

发表于 2015-3-10 13:43:06 | 显示全部楼层
我答错了,没搞清a和&a的关系。不过从二维数组的时候看确实是这样子的
回复 支持 反对

使用道具 举报

发表于 2015-3-10 18:49:25 | 显示全部楼层
还是2,我是来看
回复 支持 反对

使用道具 举报

发表于 2015-3-11 14:13:07 | 显示全部楼层
好好学习下。。。
回复 支持 反对

使用道具 举报

发表于 2015-3-11 14:42:29 | 显示全部楼层
A吧,可能是错滴
回复 支持 反对

使用道具 举报

发表于 2015-3-12 11:29:47 | 显示全部楼层
随机值。。。。。
回复

使用道具 举报

发表于 2015-3-12 15:51:17 | 显示全部楼层
国际惯例,答案回复可见
回复 支持 反对

使用道具 举报

发表于 2015-3-14 20:04:52 | 显示全部楼层
对一下答案看一下
回复 支持 反对

使用道具 举报

发表于 2015-3-15 09:02:57 来自手机 | 显示全部楼层
D吧  强制转换后  int与char占字节数不一样
回复 支持 反对

使用道具 举报

发表于 2015-3-15 16:21:14 | 显示全部楼层
学习ing,看解释
回复 支持 反对

使用道具 举报

发表于 2015-3-15 17:28:58 | 显示全部楼层
我觉得答案是A
回复 支持 反对

使用道具 举报

发表于 2015-3-15 18:49:02 | 显示全部楼层
选C啊,char *ptr=(int *)(&a+1); 把int* 的类型赋给char * ,这里好像会有问题啊,编译不会警告吗?
  1. #include <stdio.h>
  2. int main(void){
  3.         char a[4]={1,2,3,4};
  4.         char *ptr=(int*)(&a+1);
  5.         printf("%d\n",*(ptr-1));
  6.         return 0;
  7. }

  8. 编译根本通不过:error C2440: 'initializing' : cannot convert from 'int *' to 'char *'
  9.         Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
  10. 执行 cl.exe 时出错.
  11. 按出题者的意思应该char *ptr=(char*)(&a+1);
  12. 这样就是4嘛,原因:a就是数组名,也代表数组的首地址,其类型为char*,而&a是以数组整体为类型,代表其首地址,数值与a一样,我们可以理解为(char[4] )*类型【注:为了方便理解暂且这样说】,&a+1就是a[3]下一个存储区的地址,&a+1本来是(char[4])*类型,把它强制转换成char* 并赋给指针变量ptr,这样ptr-1就回到a[3]存储单元的地址了,因此*(ptr-1)就是a[3],所有是4啊。
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-3-15 19:16:39 | 显示全部楼层
看下答案是什么
回复 支持 反对

使用道具 举报

发表于 2015-3-15 19:17:26 | 显示全部楼层
看下答案是什么
回复 支持 反对

使用道具 举报

发表于 2015-3-16 19:35:39 | 显示全部楼层
走过路过,不能错过帅呆了,赞一个
回复 支持 反对

使用道具 举报

发表于 2015-3-17 16:13:17 | 显示全部楼层
选D,是随机值。因为ptr其实是指针,最终输出的是指针的地址减一后的地址所指向的内容。而这个内容是随机的。
回复 支持 反对

使用道具 举报

发表于 2015-3-17 17:12:59 | 显示全部楼层
怪兽jackie 发表于 2015-3-17 16:13
选D,是随机值。因为ptr其实是指针,最终输出的是指针的地址减一后的地址所指向的内容。而这个内容是随机的 ...

原来数组地址的加减和变量地址的加减是不一样的。说说我现在的理解:数组取地址后的加减都是以数组大小为基本单位。而变量则是以一个字节为单位。
回复 支持 反对

使用道具 举报

发表于 2015-3-17 18:27:57 | 显示全部楼层
C。。。。。。
回复

使用道具 举报

发表于 2015-3-18 10:26:18 | 显示全部楼层
我选D,但不太明白(&a+1);
回复 支持 反对

使用道具 举报

发表于 2015-3-18 18:30:56 | 显示全部楼层
...................
回复

使用道具 举报

发表于 2015-3-18 20:47:37 | 显示全部楼层
D。。。。。
回复

使用道具 举报

发表于 2015-3-23 00:31:33 | 显示全部楼层
看看答案,不晓得猜对了没
回复 支持 反对

使用道具 举报

发表于 2015-3-23 12:51:17 | 显示全部楼层
ddddddddddd
回复 支持 反对

使用道具 举报

发表于 2015-3-23 12:52:25 | 显示全部楼层
dddddddddddddddddddd
回复 支持 反对

使用道具 举报

发表于 2015-3-25 11:48:26 | 显示全部楼层
d                           
回复 支持 反对

使用道具 举报

发表于 2015-3-28 21:18:11 | 显示全部楼层
D!!!!!!!!!!!!!!
回复

使用道具 举报

发表于 2015-3-30 20:45:14 | 显示全部楼层
感觉是D,4
回复

使用道具 举报

发表于 2015-3-30 21:05:01 | 显示全部楼层
答案应该为B
回复 支持 反对

使用道具 举报

发表于 2015-3-30 22:23:35 | 显示全部楼层
D??????????
回复

使用道具 举报

发表于 2015-3-30 23:59:54 | 显示全部楼层

答错了。。。。。。。。。。。。。
回复

使用道具 举报

发表于 2015-3-31 06:36:24 | 显示全部楼层
答案必须是A
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 21:07 , Processed in 0.043785 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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