C语言&C++
July_zh
越努力越幸运
展开
-
C++判断map中key值是否存在
1、count函数count函数用于统计key值在map中出现的次数,map的key不允许重复,因此如果key存在返回1,不存在返回0if (mp.count(key) == 0) cout << "no this key" << endl;2、find函数如果key存在,则find返回key对应的迭代器,如果key不存在,则find返回尾后迭代器 .end()if (mp.find(key) == mp.end()) cout << "no原创 2021-03-06 15:55:45 · 5418 阅读 · 0 评论 -
指针和引用区别
本质:引用是别名,指针是地址相同点:●都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。不同点:●指针是一个实体,而引用仅是个别名;●引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;●引用没有const,指针有const,const的指针不可变;●引用不能为空,指针可以为空;●“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;●指针和引用的自增(++)原创 2020-05-12 21:14:13 · 179 阅读 · 0 评论 -
内存泄露与内存分配区间
内存泄露:当动态分配的内存不在使用时, 它应给被释放,这样以后可以重新使用内存。分配内存但是在使用完毕之后不进行释放将会引起内存泄露。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。内存分配区间:对于一个C语言程序而言,内存空间主要由五个部分组成:代码段(.text)、数据段(.data)、静态区(.BSS)、堆和栈组成。BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变原创 2020-05-12 20:43:37 · 289 阅读 · 1 评论 -
野指针和悬空指针
野指针产生原因:野指针主要是因为这些疏忽而出现的删除或申请访问受限内存区域的指针:指针变量创建时未初始化任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,指针变量在创建的同时应当将指针设置为NULL,或使它指向合法的内存。如果没有初始化,编译器会报错“ ‘point’ may be uninitializedin the function ”。指针 free 或 delete 后未置空有时指针在 free 或 delete 后未赋值 NULL,此时只是把指针所指的内存释放了,但原创 2020-05-12 20:40:32 · 322 阅读 · 0 评论 -
C和C++的区别
1、C语言是面向过程语言,C++是面向对象语言;面向对象就是高度实物抽象化(功能划分)面向过程就是自顶向下的编程(步骤划分)2、关键字不同C++继承了C语言的所有关键字3、后缀名不同C源文件后缀.c,C++源文件后缀.cpp4、返回值C语言中,如果一个函数没有指定返回值类型,默认返回int类型;C++中,如果一个函数没有返回值则必须指定为void。5、参数列表在C语言中,函数没有指定参数列表时,默认可以接收任意多个参数;但在C++中,因为严格的参数类型检测,没有参数列表的函数,默认为 v原创 2020-05-11 23:18:26 · 625 阅读 · 0 评论