随笔分类 - C/C++
摘要:1.问题的引入: 为什么要使用malloc,主要是因为在代码中,为了节约内存,很多数据都是动态生成的,所以会用malloc,对应于C++中的new,底层还是调用malloc。 2.碎片的问题: 会有内部碎片与外部碎片的问题,内部碎片难以消除(因为字对齐之类的问题),而外部碎片是可以消除的(如果不消除
阅读全文
摘要:在C中: 方法: 1.C标准库中的sprintf, sscanf 2.C标准库还提供了 atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long long 型。 在C++中 方法:用C++的streanstream ·数字转字符
阅读全文
摘要:而二维数组的动态创建则较为复杂: ·动态申请列大小固定的二维数组 ·动态申请大小不固定的二维数组 方式1: 访问数据的方式:直接通过a[i][j]访问第i行第j列的数据。 优缺点:通过a[i][j]访问数据容易,但是new的次数太多,释放空间不容易。 方式2: 访问数据的方式:通过a[i*(row+
阅读全文
摘要:·默认拷贝构造函数可以完成对象的数据成员值简单地复制 浅拷贝 ·对象的数据资源是由指针指示的堆时,默认拷贝构造函数仅作指针值的复制,需要显式定义拷贝构造函数 深拷贝 首先定义几个点: 浅拷贝: 深拷贝: 自定义的拷贝构造函数: 注:若是浅拷贝,当p1先执行析构函数之后,name所指向的内存被释放掉;
阅读全文
摘要:一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: 它的作用是:当标识符已经被定义过(一般是
阅读全文
摘要:·变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。 ·变量声明:用于向程序表明变量的类型和名字。 ·定义也是声明:当定义变量时我们声明了它的类型和名字。 ·extern关键字:通过使用extern关键字声明变量名而不定义它。 1.定义也是声明,extern声明不
阅读全文
摘要:extern用法详解: 1. 声明外部实体 声明外部全局变量或对象,一般用于头文件中,表示在其它编译单元内定义的变量,链接时进行外部链接,如: extern int ivalue; 此时的extern是必须的,省略了extern编译器将视为定义而不是声明,一般地在源代码中定义变量并进行初始化,在头文
阅读全文
摘要:转自:http://blog.csdn.NET/skyereeee/article/details/8000512 static的三个作用: (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍: 一、局部静态变量
阅读全文
摘要:参考:http://blog.csdn.net/shihui512/article/details/9092439 1.new、delete、malloc、free之间的关系 malloc和free都是C/C++语言的标准库函数,new/delete是C++的运算符。 new调用构造函数,delet
阅读全文