
C/C++重点总结
喵的波波鱼
爱生活,也爱技术!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++中函数指针与回调函数
1.函数指针 (1)函数指针的定义 函数:完成某一个特定功能的代码块; 指针:它是一种特殊的变量,用来保存地址值,指针是有类型的,某类型的指针指向某类型的地址。 函数指针:顾名思义,通过一个指针指向一个函数的地址 定义格式:返回值 (*指针名)(参数列表); 比如: int add(int a, int b) { return (a + b); } 这段代码在编译生成后存...原创 2019-03-16 14:50:59 · 806 阅读 · 0 评论 -
C++几个关键字总结——const、static、extern、volatile
1.const const 基本原理 : 被修饰的对象的值不可以被修改 const推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 (1)const修饰基本数据类型 表示常量,必须进行初始化,有以下两种初始化的方式: 编译时初始化: 编译器在编译时会把所有用到j的地方都替换成对应常数,如const int a=42;,即这种情况下,编译器是不为常量a分配内...原创 2019-03-16 22:10:32 · 2255 阅读 · 1 评论 -
C/C++中include、宏定义、条件编译
C/C++中的预处理主要包含四种:文件包含、宏定义、条件编译、一些特殊的预定义宏 1.文件包含 “文件包含处理”是指一个源文件可以将另外一个文件的全部内容包含进来。C语言提供了#include命令用来实现“文件包含”的操作。 #include< > 与 #include ""的区别: (1)"" 表示系统先在.c文件所在目录去搜索包含的.h文件,比如我们的要写的范例,在main...原创 2019-03-16 18:07:05 · 2983 阅读 · 0 评论 -
C++动态内存管理——智能指针
智能指针 1.什么是智能指针? 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露(利用自动调用类的析构函数来释放内存)。 实现技术是使用引用计数(shared_ptr)、资源独占(unique_ptr和auto_ptr)、只引用,不计数(weak_ptr)。 指针和智能指针: 智能指针是对象,对...原创 2019-03-12 23:24:59 · 506 阅读 · 0 评论 -
C++动态内存管理——new和delete
1.new和delete C++中使用new(分配)和delete(释放)来管理在堆(也叫自由空间)的内存 它们的底层封装了C语言中的malloc和free函数 new和delete、malloc必须配套使用,不能交叉使用,原因:如果用free释放“new创建的动态对象”,那么该对象因无法执行析构函数而可能导致程序出错。如果用delete释放“malloc申请的动态内存”,结果也会导致程序出...原创 2019-03-12 23:24:10 · 408 阅读 · 0 评论 -
C语言中的内存深入剖析
1.c语言中的内存区域 C语言程序在内存执行时主要分为四个区:代码区、静态区、栈区、堆区(还有更细的分法,此为常用的) (1)代码区 存放:程序执行的代码、一些只读的常数变量(如字符串常量) 这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读。 代码演示: #include<stdio.h> int main(void) { char str[] ...原创 2019-03-09 19:25:02 · 616 阅读 · 1 评论 -
C/C++中指针与数组、指针数组与数组指针
1.指针与数组 (1)指针与数组的联系 数组名和指针之间,经常会交替使用这两个变量, 可以把一个指针当成数组来使用,或者是把数组名赋值给指针,通过指针来访问数组成员变量, 代码示例 : #include <iostream> int main() { int array[] = {1,2,3,4,5}; int *p_array = array; int len...原创 2019-03-14 22:34:42 · 3505 阅读 · 1 评论 -
C语言内存动态分配函数——malloc、calloc、realloc的用法与区别以及free
内存动态分配函数 主要涉及malloc/calloc/realloc和free四个函数,头文件:#include <stdlib.h> (1)malloc 函数原型: void *malloc(size_t size); 说明 向系统申请分配一个长度为size大小字节的内存块,并返回内存块的起始地址。 返回值 如果分配成功则返回指向被分配内存的指针,否则返回空指针NUL...原创 2019-03-09 17:43:34 · 973 阅读 · 0 评论