C/C++
一只鱼头
菜鸡程序媛~
展开
-
C++——static关键字
static修饰符的作用1、数据共享成员变量(实例变量)和静态变量(类变量)的区别a、两个变量的生命周期不同成员变量随对象的创建而存在,随对象被回收而释放静态变量随类的加载而存在,随类的消失而消失b、调用方式不同成员变量只能被对象调用静态变量还可以被类名调用c、数据存储位置不同成员变量–>堆内存的对象中,也叫对象的特有数据静态变量–>方法区(共享数据区)的静态区,也叫对象的共享数据2、修饰变量:每个对象都共有的属性就可以设置为static,被修饰原创 2020-09-11 10:51:54 · 407 阅读 · 0 评论 -
C++——sizeof()、strlen()、length()、size()、字符数组、字符串
1、sizeof():返回所占总空间的字节数(1)对于整型字符型数组(2)对于整型或字符型指针2、strlen():返回字符数组或字符串所占的字节数(1)针对字符数组(2)针对字符指针sizeof():运算符,编译时计算,参数:数组、指针、类型、对象、函数。功能:获得保证能容纳所建立对象的最大对象字节数,不能返回动态分配内存空间大小。strlen():函数,运行时计算,参数:char *(字符型指针)功能:返回字符串的实际长度,返回长度不包括'\0',即遇到'\0原创 2020-09-03 14:17:45 · 518 阅读 · 0 评论 -
C++——malloc/new区别
特征 new/delete malloc/free 分配内存的位置 自由存储区 堆 返回类型安全性 完整类型指针 void* 内存分配失败返回值 默认抛出异常 返回NULL 分配内存的大小 由编译器根据类型计算得出 必须显式指定字节数 处理数组 有处理数组的new版本new[] 需要用户计算数组的大小后进行内存分配 已分配内存的扩充 无法直观地处理 使用realloc简单完成 是否...转载 2020-08-18 20:00:39 · 118 阅读 · 0 评论 -
C++——关联容器(map、set)
map类型:元素是key-value(key:起到索引的作用 value:表示与索引相关联的数据) key-value:关键字-值对(简称键值对)set类型:每个元素只包含关键字,支持高效的关键字查询关联容器类型:有序:map(关联数组;保存关键字-值对) set (关键字即值,只保存值关键字的容器) multimap( 关键字可重复出现的map) multiset(关键字可重复的set)无序集合:...原创 2020-08-15 15:36:49 · 141 阅读 · 0 评论 -
C++——String类
String类型常用方法:构造:string s(cp ,n) 字符串s是cp数组中前n个字符的拷贝 string s(s1) 字符串s是s1的拷贝 string s(s1,2) 字符串s是s1从第2位置元素的拷贝 string s(s1,2,5) 字符串s是s1从第2位置元素拷贝,长度为5const char* cp="Hello World";string s(cp,5) //s="Hello"string p = "he...原创 2020-08-15 15:17:41 · 187 阅读 · 0 评论 -
C++——三种数组(array、vector、valarry)
1、内置数组 C++内置的原生数组可以存储一个固定大小的相同类型的元素集合,通过索引访问,由连续内存位置构成。//声明type arrayName [ arraySize ];// 默认初始化int arr[5]; // 创建包含5个int型整数的数组,未被初始化int arr[5] = {}; //创建并初始化5个值为0的int型元素 // 列表初始化int arr[5] = {1, 2, 3}; // 显式的初始化数组的前三个元素,剩下的元素默认初始化为0int...原创 2020-08-15 14:06:29 · 2482 阅读 · 0 评论 -
C++——智能指针(shared_ptr、unique_ptr、weak_ptr)
智能指针:是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指针;行为类似于常规指针,更容易也更安全的使用动态内存,负责自动释放所指向的对象;智能指针的类都是栈上的对象,所以当函数(或程序)结束时会自动被释放;三种智能指针:shared_ptr、unique_ptr、weak_ptr,均定义在memory头文件中。1、shared_ptr定义:shared_ptr允许多个对象指向同一个对象,是一个标准的共享所有权的智能指针,C++11引入到C++ STL用法:原创 2020-08-13 18:42:46 · 650 阅读 · 0 评论 -
C++——静态内存(static)
内存分区:1、代码区(存放程序代码)2、数据区(存放程序编译和执行过程中出现的变量和常量) a、静态区 b、堆区 c、栈区 d、常量区内存分配问题通常分为:静态内存、栈内存、堆内存(又叫自由空间) 静态内存/栈内存:由编译器自动创建和销毁 堆:存储动态分配的对象(程序运行时分配),需要程序员手动(显示)...原创 2020-08-13 15:19:33 · 1410 阅读 · 0 评论 -
C++——malloc()
malloc:1、含义: 在堆上动态分配一块连续内存,与free()一起使用2、用法: int *p=(int*)malloc(8*sizeof(int)) malloc开辟一个int类型,8个int大小的空间(8*4=32个字节长度),p指针指向malloc所开辟的空间。3、头文件: malloc是C标准库中提供的一个普通函数,库函数头文件include<malloc.h>4、原型: void *mal...原创 2020-08-13 10:29:09 · 3157 阅读 · 0 评论