命名空间(c++)
示例:
fun.h
# include<iostream>
using namespace std;
namespace A
{
typedef int Int;
};
main.cpp
# include<iostream>
# include"fun.h"
using namespace std;
using namespace A;
int main()
{
Int i = 10;
return 0;
}
new、delete(c++)malloc、free(c)
malloc、free的用法
int main()
{
//申请单个变量
int *p = (int *)malloc(sizeof(int)* 1);
assert(p != NULL);
*p = 10;
free(p); //释放
p = NULL;
//申请一维数组
int *q = (int *)malloc(sizeof(int)* 10);
assert(q != NULL);
for (int i = 0; i < 10; i++)
{
q[i] = i;
}
free(q); //释放
q = NULL;
//二维数组5*5
int **t = (int **)malloc(sizeof(int *)* 5);
assert(t != NULL);
for (int i = 0; i < 5; i++)
{
t[i] = (int *)malloc(sizeof(int)* 5);
assert(t[i] != NULL);
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
t[i][j] = i;
}
}
for (int i = 0; i < 5; i++)//释放
{
free(t[i]);
t[i] = NULL;
}
return 0;
}
new、delete用法
//申请单个变量
int *p = new int;//不初始化
*p = 10;
delete p;//释放
int *q = new int(10); //初始化
delete q;
//申请一维数组
int *t = new int[10];
delete[]t;//释放
//申请二维数组
int **x = new int*[5];
for (int i = 0; i < 5; i++)
{
x[i] = new int[5];
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
x[i][j] = i;
}
}
for (int i = 0; i < 5; i++)//释放
{
delete[]x[i];
}
delete[]x;
c++中的哪些功能代替了c语言中的宏
- 内联函数:在编译期展开,可以调试,有类型检查
- 宏函数:预编译期在调用点展开,不可以调试,没有类型检查
- const:在编译期使用该变量值进行替换
- 宏变量:预编译期进行字符替换,没有类型检查,不可调试