随笔分类 -  C/C++

static在C++和Java中的区别
摘要:一.static涉及普通变量、函数: 1.静态全局变量/静态函数 隐藏特性 仅在声明它的文件中可见,同一工程的其它文件中不可见,可解决不同文件的变量/函数重名问题; 2.静态局部变量 记忆特性 作为static局部变量在函数内定义,其作用域同普通局部变量,但生存周期为整个源程序,在程序刚开始运行完成 阅读全文

posted @ 2016-03-03 19:31 huashunli 阅读(1826) 评论(0) 推荐(0)

C++内存分配
摘要:栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等,操作方式类似于数据结构的栈; 堆区:由程序员分配释放,若程序员不释放,程序结束时由操作系统回收,操作方式类似于链表; 全局/静态区:全局变量和静态变量被分配到同一块内存中,初始化的全局变量和静态变量存放在一块区域,未初始化的全局变量和静态 阅读全文

posted @ 2016-03-01 11:50 huashunli 阅读(152) 评论(0) 推荐(0)

malloc/free和new/delete
摘要:一. 执行内容:malloc / free:malloc 函数的参数接收所需分配的内存字节数,如果内存满足请求量,将返回指向被分配内存起始地址的指针;free 释放指针所指向的内存,其中指针必须指向所释放内存空间的首地址;new / delete:new 分为两步:1).通过operator new... 阅读全文

posted @ 2015-08-16 17:30 huashunli 阅读(170) 评论(0) 推荐(0)

野指针问题
摘要:1. 定义: 野指针是指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为NULL来避免,而只能通过养成良好的编程习惯来尽力减少,对野指针进行操作容易造成程序错误。2. 形成原因:(1)指针变量未初始化 任何指针变量刚被创建时不会自动成为NULL指针,... 阅读全文

posted @ 2015-08-16 10:59 huashunli 阅读(327) 评论(0) 推荐(0)

数组指针/指针数组的使用
摘要:#include #include #include using namespace std; #define M 4 #define N 5 int main() { int m = 4, n = 5; char arr[4][5] = { {'A','B','C','D','E'}, {'F','G','H','I','J'}, ... 阅读全文

posted @ 2015-08-15 21:56 huashunli 阅读(1151) 评论(0) 推荐(0)

sizeof/strlen/length
摘要:1.sizeof() sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存... 阅读全文

posted @ 2015-08-14 22:55 huashunli 阅读(209) 评论(0) 推荐(0)

断言assert的用法
摘要:1.首先明确assert实质上是宏,原型定义在中,作用是如果expression返回错误,则先向stderr打印一条出错信息,然后调用abort来终止程序的运行;使用assert的缺点是,频繁的调用会极大影响程序性能,增加额外开销。#include void assert( int expressi... 阅读全文

posted @ 2015-08-14 21:32 huashunli 阅读(297) 评论(0) 推荐(0)

union联合体
摘要:共用体(或联合体)定义:在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中,也就是使用覆盖技术,几个变量互相覆盖。共用体运用规则:1.共用体变量分配的内存大小由最大成员的大小决定;2.共用体变量的地址和它各成员的地址都是同一地址,所有成员的存放都是从低地址开始;3.由于... 阅读全文

posted @ 2015-08-13 23:27 huashunli 阅读(337) 评论(0) 推荐(0)

导航