C++
Julinus
希望在这里和大家一起学习交流。
展开
-
#pragma once与#ifndef #define ...#endif的区别
1. #pragma once用来防止某个头文件被多次include; #ifndef,#define,#endif用来防止某个宏被多次定义。 2. #pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了;转载 2017-01-07 11:35:00 · 574 阅读 · 0 评论 -
【C++】智能指针
1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。 理解智能指针需要从下面三转载 2018-04-24 19:57:01 · 272 阅读 · 0 评论 -
深拷贝和浅拷贝
深拷贝: 当对象中含有指针域的时候,在对象之间进行初始化(即调用对象的拷贝构造函数)或者是 = 操作符的时候,将对象内的指针所包含的内存空间中的内容也进行拷贝。 浅拷贝: 当对象中含有指针域的时候,在对象之间进行初始化(即调用对象的拷贝构造函数)或者是 = 操作符的时候,单纯的将指针的值(也就是所指内存空间的首地址)进行拷贝。 这就导致原创 2017-11-04 00:28:28 · 279 阅读 · 0 评论 -
三种方法实现字符串逆置(递归和非递归法)
编写函数reverse(char *s)的倒序递归程序,使字符串s倒序。 #if 0 #include #include #include using namespace std; // 非递归法实现字符串逆序 char* reverse1(char *str) { if (!str) { return NULL; } ch原创 2017-02-24 18:57:12 · 4048 阅读 · 0 评论 -
C/C++内存模型
转载于:http://c.biancheng.net/cpp/html/2857.html我们知道,C程序开发并编译完成后,要载入内存(主存或内存条)才能运行(请查看:载入内存,让程序运行起来),变量名、函数名都会对应内存中的一块区域。内存中运行着很多程序,我们的程序只占用一部分空间,这部分空间又可以细分为以下的区域:内存分区说明程序代码区(code area)存放函数体的二进制代码静态数据区(d...转载 2018-05-21 19:43:41 · 547 阅读 · 0 评论