首页  >   经验  >   编程变态题目--指针运算考题的详细分析

编程变态题目--指针运算考题的详细分析

查看 codexia 的博客 2015-06-27 01:12:27 2156
编程  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介对于新手来说,这么一道题目,可以说是很变态了。不就想考一下指针运算,至于吗?还是出题老师装逼,结果装漏了。

题目:

int a[]={1,2,3,4,5,};
int * p = a;
int * q = &a[5];
printf("%d",q-p);

在sizeof(int)为4的情况下,选项哪个正确:
A:编译报错
B:编译不报错,但是运行崩溃
C:输出5
D:输出20

-----------------------------------------
    下面我对这个题目详细分析一番。
    题目还原成一个完整的程序,可以供大家

#include "stdio.h"
void main()
{
    int a[]={1,2,3,4,5,};
    int * p = a;
    int * q = &a[5];
    printf("%d",q-p);
}
     通过运行,发现结果是5。但是你用q的值减去p的值,却发现是20.
    a数组的定义初始化,以这种形式自动确定数组大小。这个做法,在编程里,确实也经常用到。不该的是,里面多一个逗号。我就想问一下这个出题的老师,你脑残了吗?你这个是想考什么呢?还是你手一贱,多加了一个逗号?第一次见到这种题目,我也是醉了。你是要彰显你的自己装逼的本能,我能理解,可惜你装漏。就因为这个,A选项给你一个编译不通过。事实上,是可以编译通过的。
    实际上,如果把a的初始化,出在编译原理课程题目里,确实不错。这个可以考编译器如何处理。放在这里就不合适了。你说这个对初学编程的人来说,有什么意义呢?

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 1PET4i 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:编程变态题目--指针运算考题的详细分析
文章地址:http://www.cjjjs.com/article/627201527121250
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:编程变态题目--指针运算考题的详细分析
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. C++ Primer Plus 6th 6.11 编程练习题 第7题 统计单词的元音和辅音等的个数 查找全网同类文章
  2. C++ Primer Plus 6th 6.11 编程练习题 第6题 记录捐款姓名和捐款数额 查找全网同类文章
  3. C++ Primer Plus 6th 6.11 编程练习题 第5题 个人所得税计算 查找全网同类文章
  4. C++ Primer Plus 6th 6.11 编程练习题 第4题 菜单选择显示BOP的成员 查找全网同类文章
  5. C++ Primer Plus 6th 6.11 编程练习题 第3题 编写一个菜单驱动程序的雏形 查找全网同类文章
  6. C++ Primer Plus 6th 6.11 编程练习题 第2题 循环读取double并统计数据 查找全网同类文章
  7. C++ Primer Plus 6th 6.11 编程练习题 第1题 字符的大小写转换和回显字符 查找全网同类文章
  8. C++ Primer Plus 6th 5.9 编程练习题 第10题 分多行打印点号和星号 查找全网同类文章
  9. C++ Primer Plus 6th 5.9 编程练习题 第9题 使用string对象统计单词 查找全网同类文章
  10. C++ Primer Plus 6th 5.9 编程练习题 第8题 统计单词数,用done做结束识别 查找全网同类文章
分享到:
分享文章[编程变态题目--指针运算考题的详细分析]到QQ空间

相关阅读

猜您感兴趣