C++
文章平均质量分 64
Don_sandman
这个作者很懒,什么都没留下…
展开
-
数组名和指针的区别
这个问题也纠结我蛮久,看到这篇不错的博客就转过来啦。转载请注明来源 http://blog.csdn.net/imred/article/details/45441457 实际上关于数组与指针的区别这个问题在《C专家编程》已经有很详细的阐释,但我想用自己的语言说一说我的理解。数组是指针?最近在做数据结构课设,其中一个函数发生了令人费解的错误,简化后的代码如下:#转载 2017-09-22 23:43:41 · 311 阅读 · 0 评论 -
size和sizeof的区别
问题并不复杂,但对于运算符还是函数还是有一点启发的,先mark一下。在c++中size()和sizeof()用法说明:1、size()是取字符串长度的,跟length()用法相同。举例:string str="0123456789";cout cout 为了兼容,这两个函数一样。 length()是因为沿用C语言的习惯而保留下来的,string类最初只有length(),引入STL之后,为转载 2017-09-22 23:48:09 · 6823 阅读 · 0 评论 -
c++中对象动态建立与静态建立的区别和应用
C++中建立类的对象有两种方式:(1)静态建立,例如 A a; 静态建立一个类对象,就是由编译器为对象在栈空间中分配内存。使用这种方法,是直接调用类的构造函数。(2)动态建立,例如 A* p = new A(); 动态建立一个类对象,就是使用new运算符为对象在堆空间中分配内存。这个过程分为两步:第一步执行operator new( )函数,在堆空间原创 2017-09-21 00:32:35 · 3500 阅读 · 0 评论 -
内存动态分配与静态分配and储存区域
一 静态内存分配 1. C语言的全局变量、静态局部变量的存储实在编译时确定的,其存储的空间的实际分配在程序开始执行前完成。 2. 在栈上创建的,比如局部自动变量,在执行进入变量定义所在的复合语句时为他们分配存储单元。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。 3. 以静态方式安排存储的好处主要是实现比较方便,效率高。原创 2017-09-23 00:30:04 · 537 阅读 · 0 评论 -
[LeetCode] Hamming Distance 汉明距离
这并不是一道难题,但我看到原博主的第三种解法后,觉得不少题都应该保持这种探寻最优解的思考方式,故以此为记。The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given two integers x转载 2017-09-08 22:20:23 · 314 阅读 · 0 评论 -
new与malloc的不同
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2, 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于m转载 2017-09-20 21:30:59 · 271 阅读 · 0 评论 -
C++类中的数据成员能否在定义类的时候就初始化?
class A{private: int a=1;};即上述关于类的定义正确与否?一般而言,类中的数据成员在定义类的时候是不能初始化的。这是一个可以值得探讨的话题,每个人的解释都不一样,大部分人都认为这是编译语法的规定,那么有没有考虑为什么会有这个规定呢? 个人认为可能的原因有: (1)类只是一转载 2017-09-20 17:06:31 · 5716 阅读 · 1 评论 -
局部变量、全局变量、静态变量的含义及存储位置
1.局部变量在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量。局部变量保存在动态数据区的栈中,只有在所在函数被调用时才动态地为变量分配存储单元。 1).主函数main中定义的变量也只在主函数中有效. 2).不同函数中可以使用名字相同的变量,它们代表不同的对象,互不干扰.原创 2017-09-19 21:35:00 · 14099 阅读 · 1 评论 -
在c++中size()和sizeof()用法说明
1、size()是取字符串长度的,跟length()用法相同。举例:string str="0123456789";cout cout 为了兼容,这两个函数一样。 length()是因为沿用C语言的习惯而保留下来的,string类最初只有length(),引入STL之后,为了兼容又加入了size(),它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。 string类的转载 2017-09-21 00:06:13 · 19946 阅读 · 0 评论