一个很有趣的问题,自认为大虾的可以看看
2013-03-24 20:34
281 查看
#include <vector> #include <iostream> using namespace std; void main() { int i = 2, j; j = i++ + ++i; cout << j <<endl; //等于6 i = 2; i = i++ + ++i;//换((i++) + (++i));此种形式,依然等于7 cout << i <<endl; //等于7,为什么等于7呢? int n[] = { 1, 2, 3, 4 }; vector<int> vctInt(n, n + 4); int* m = new int(4); memcpy(m, &vctInt.at(0), sizeof(int)*vctInt.size()); delete[] m;//为什么崩溃呢? }
自认为大虾的朋友们,能给小弟解惑一二吗?
根据cyz108D这位哥们的评论,我总结了原因如下:
第一个问题是由于i++引起的,i = i++ + ++i会先执行i = 右边的表达式,最后再i++操作,所以结果就出现了一个6,一个7。
第二个问题,纯属小弟基础不扎实,new int(4),只分配了一个int的内存并初始化为了4,却调用delete []操作,当然是非法的。正确写法是new int[4]
相关文章推荐
- 一个有趣的问题:可以输出自己的源程序代码(quine)
- ?求助,谁可以帮助看看一个问题,可以给我解释一下。谢了。。
- 数据库SQL中的分钟表示应该使用MI(非常重要的一个问题,以前一直认为和java中一样,用mm就可以表示);校对规则(查询时区分大小写)
- 一个有趣的智力题,可以看看
- 一个有趣的Java编译问题
- 一个ASP.NET2.0的问题,实在无法解决,请大家帮忙看看(放在首页一天后撤下,请DUDU原谅)问题已经解~~^_^
- 基本上,把switch,用设计模式代替,肯定是bug和过度设计。想想,本来修改一个文件几行代码可以解决的问题,变成修改3-6个类才能实现一样的功能。不是傻是什么?
- 一个有趣的项目,可以把TC2.0的代码移到gcc上
- 一个Web页面的问题分析 转载的不错,可以学习一下
- 一个鼠标指针有关的启发(存在问题,可以参考一下 呵呵)
- NYOJ 14 场地安排(它可以被视为一个经典问题)
- 关于php析构函数的一个有趣问题
- 一个有趣的问题-分球问题
- 2018年1月19日 python的一个有趣的问题
- 一个有趣的SQL问题。
- 数据分析最常见的十个问题,感兴趣的可以看看!
- 利用运行时,给UIImageView写一个分类,交换里面的setImage的方法,可以重绘图片,提高内存的利用率(要是没有重绘图片,直接使用系统提供的setImag就会造成占用大量的内存问题)
- springmvc+mybatis+maven项目集成的时候遇到一个问题,项目搭起来以后,http请求怎么都进不到controller中,页面直接返回404错误,控制台没有报任何错误,请大神帮我看看
- 有关JVM常量池和String.intern() 的一个有趣的问题
- 闲来无事,将自己收集到的工具类封装了下,做了一个lib,写了个简单的mvp,初学者可以看看