整型 int long
浮点型 float double
字符类型 char
布尔 bool
bool 寄存真 (1) 和假 (0) 的类型 大小 1 个字节 能够寄存 true false
指针 寄存地址的变量 能够间接批改变量的值
定义的时候能够不必赋值 应用的时候 如果不赋值不能够解援用 应用的是指向的变量
援用 变量的别名 应用援用和应用变量是一样的
定义的时候必须绑定一个变量 绑定之后不能够让援用指向别的变量
宏定义 #define 不带参数 能够替换简略的函数 不能替换简单函数 先替换再计算
没有函数的跳转工夫 增长代码长度 节约运行工夫长度 消耗内存 倡议应用内联函数替换带参宏
区别:1. 内联函数 参数有类型(更平安) 带参宏没有类型
2. 带参宏 先替换再计算 须要思考优先级问题
内联函数 先计算 而后后果带进去 不须要思考优先级问题
内联 inline 关键字 放到函数后面 倡议这个函数用内联的形式编译
`inline void(int& a)// 函数背后加上 inline 关键字称之为内联函数
{a = 2;}`
函数定义 容许重名
函数返回值类型 / 参数名字不一样不形成重载 次要看参数
函数参数个数不一样 形成重载
void fun(int a);
int fun(int aa, int bb);
函数参数类型不一样 形成重载
void fun(int a);
int fun(double b);
调用函数的时候 有默认值的形参能够不必传递参数 申明 / 定义的时候赋值
缺省必须从右往左
void fun_1(int a, int b, int c = 1);
fun_1(3, 2);
void fun_2(int aa, int bb = 12, int cc = 11);
fun_2(13);
缺省和重载 引发一个二义性问题 两个函数形成重载 然而调用的时候两个函数都能够匹配
void fun_3(int a, int b = 2);
void fun_3(int a, int b = 4, int c = 6);
fun_3(1);// 此时都能够调用
C 语言 申请堆内存 malloc 开释 free 头文件 stdlib.h
int* p = (int*)malloc(sizeof(int)*20);// 申请内存
free(p);// 开释内存
C++ 申请内存 应用 new 开释内存 应用 delete
int* p = new int;// 申请一个 int;
delete p;// 开释一个
int* pp = new int[20];// 申请 20 个 new 类型[个数]
delete[] pp;// 开释多个
申请内存的时候给他赋初值
int* p = new int(20);//()示意初值
int* pp = new int[20]{1, 2, 3. 4. 5};// 赋予多个初值
stdio.h C 语言输入输出头文件 io input 输出 output 输入 standard 规范
iostream io 输入输出 stream 流
count<< 输入的内容 <<endl;//endl 示意换行 输入数据
cin>> 变量;// 输出数据