基础知识
香菜对菠菜说生菜爱吃花菜
这个作者很懒,什么都没留下…
展开
-
字符函数和字符串函数的使用和实现
strlen,strcpy,strcat,strcmp,strstr原创 2019-06-22 02:34:19 · 103 阅读 · 0 评论 -
stl
目录1. 什么是STL2.STL的六大组件STL六大组件3.STL的缺陷1. 什么是STLSTL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。2.STL的六大组件STL六大组件容器(Container)算法(Algorithm)迭代...原创 2019-08-07 14:14:47 · 387 阅读 · 0 评论 -
c++模板入门,泛型编程、函数模板、类模板
目录1. 泛型编程2. 函数模板2.1 函数模板概念2.2函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则3. 类模板3.1 类模板的定义格式3.2 类模板的实例化1. 泛型编程如何实现一个通用的交换函数?使用函数重载虽然可以实现,但是有一下几个不好的地方: 1. 重载的函数仅仅只是类型不同,代码的复...原创 2019-08-07 13:56:54 · 221 阅读 · 0 评论 -
C/C++内存管理
目录1. C/C++内存分布2. C语言中动态内存管理方式3. C++内存管理方式4. operator new与operator delete函数5. new和delete的实现原理6. 定位new表达式(placement-new)7. 常见面试题1. C/C++内存分布【说明】 1. 栈又叫堆栈,非静态局部变量/函数参数/返回值等等...原创 2019-08-07 13:38:17 · 414 阅读 · 0 评论 -
类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载
1.类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 取地址及const取地址操作符重载2. 构造函数2.1 概念构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合...原创 2019-08-07 11:17:22 · 929 阅读 · 0 评论 -
类与对象、this指针、类的对象大小的计算、类的作用域、类的实例化
目录1.类与对象的初步认知2.类的引入3.类的定义4.类的访问限定符及封装5.类的作用域6.类的实例化7.类对象模型8.this指针1.类与对象的初步认知C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入...原创 2019-08-07 10:16:07 · 144 阅读 · 0 评论 -
c++入门、关键字、命名空间、出入输出、缺省参数、函数重载、引用、内联函数、auto、范围for循环、指针空值null
目录1.什么是C++c++关键字:(c++98)2. 命名空间3. C++输入&输出4. 缺省参数5. 函数重载6. 引用7. 内联函数宏:定义常量、定义宏函数。(缺陷很大)#define8. auto关键字(C++11)9. 基于范围的for循环(C++11)1.什么是C++ C语言是结构化和模块...原创 2019-08-07 09:35:40 · 313 阅读 · 0 评论 -
栈、队列
栈: 先进后出#include<stdio.h>typedef struct Stack { int array[100]; int size;} Stack;//初始化void StackInit(Stack* s){ s->size = 0;}//销毁void StackDestroy(Stack* s){ s-&...原创 2019-08-05 15:18:04 · 109 阅读 · 0 评论 -
结构体----------内存对齐
1.什么是内存对齐? 内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。2.为什么存在内存对齐?1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性...原创 2019-06-28 00:38:30 · 102 阅读 · 0 评论 -
结构体基础
结构体结构是一些值的集合,这些值称为成员变量。结构体的每个成员变量可以是不同类型的变量。结构体的声明1.一般声明struct tag//结构体类型名{ member-list;//成员列表 //.......}variable-list;//变量列表,全局变量2.特殊的声明//匿名的结构体类型,不完全的声明struct{ int a...原创 2019-06-27 23:12:01 · 188 阅读 · 0 评论 -
指针和数组笔试题解析
//一维数组#include<stdio.h>int main(){ int a[] = { 1,2,3,4 }; printf("%d\n", sizeof(a));//16 //求数组大小 printf("%d\n", sizeof(a + 0));//4 //求首元素地址大小 printf("%d\n", sizeof(*a));/...原创 2019-06-26 23:52:00 · 116 阅读 · 0 评论 -
数组指针、指针数组、函数指针、函数指针数组、指向函数指针数组的指针、回调函数
数组指针数组指针的定义:int (*p)[10];//p先和*结合,说明p是一个指针变量,然后指针指向一个大小为10个整形的数组。所以p是一个指针,指向一个数组,叫指针数组。//[]的优先级高于*号的,所以必须加上()来保证p和*先结合。&数组名和数组名:int arr[10];arr是数组名,也就是首元素的地址。而 &arr 表示的是数组的地址 ,而不是首元素的...原创 2019-06-26 22:57:24 · 168 阅读 · 0 评论 -
结构体位段、枚举、联合体(共用体)
位段什么是位段? 位段,C语言允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或称“位域”( bit field) 。利用位段能够用较少的位数存储数据。位段的声明 位段的声明和结构是类似的,有两个不同:位段的成员必须是 int、unsigned int、 signed int、char 整形家族。 位段的成员后面有一个冒号和数字...原创 2019-07-02 00:25:01 · 334 阅读 · 0 评论 -
C语言指针
指针是什么?指针是一个变量或者说是编程语言中的一个对象,存放内存单元的地址。“指针”的意思就是通过它能找到以它为地址的内存单元。指针是用来存放地址的,地址是唯一标志一块地址空间的。指针大小在32位平台下是4字节。在64位平台下是8字节的。指针和指针类型指针是有类型的,类型名为: 类型说明符*指针类型的定义:类型说明符(目标变量的类型) *(指针类型说明符) 指针变量名如...原创 2019-06-26 16:38:49 · 96 阅读 · 0 评论 -
高级IO、详细的IO多路转接
高级IO:五种典型IO: 阻塞IO/非阻塞IO/信号驱动IO/异步IO/IO多路转接IO操作的流程: 等待IO操作条件具备,然后进行数据拷贝。任何IO过程中, 都包含两个步骤. 第一是等待, 第二是拷贝. 而且在实际的应用场景中, 等待消耗的时间往 往都远远高于拷贝的时间. 让IO更高效, 最核心的办法就是让等待的时间尽量少.阻塞IO:为了完成IO操作发起的调用,当前不具备IO操作条件...原创 2019-06-25 21:33:22 · 340 阅读 · 0 评论 -
C语言数据类型
数据类型,大小端数据类型名称64位系统下数据大小char字符数据类型1short短整型2int整形4long长整形8long long更长的整形8float单精度浮点数4double双精度浮点数8构造类型:数据类型结构体类型struct枚举类型enum联合体类型union指针类型、空类型:v原创 2019-06-22 02:00:01 · 80 阅读 · 0 评论 -
string类、string类模拟实现、深浅拷贝、写实拷贝
1. 为什么学习string类?C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。 2. 标准库中的string类2.1 string类1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本...原创 2019-08-07 14:52:40 · 206 阅读 · 0 评论