结构体
1、是一个特殊的类
2、可以放函数成员,也可以用函数地址代替(将函数通过指针间接存储结构体)
3、声明变量的时候可以不用struct直接写函数名(C语言需要)
#include <iostream>
using namespace std;
struct Node
{
int n;
void (*p)();//将函通过指针间接存在结构体
};
void fun()
{
cout << "hello lixiaoer";
}
int main()
{
Node a = { 1, fun }; //声明变量
a.p();
system("pause");
return 0;
}
new和delete
c语言中malloc和free
c++中是new和delete
初始化数组memset(起始地址,字节数,设置的值)
#include <iostream>
using namespace std;
int main()
{
//new
int *p = (int*)malloc(sizeof(int));
int* p1 = new int(12);//new*type(value) 类型匹配 可以用括号赋值
//*p1 = 12; //写
cout << *p1 << endl; //读
delete p1; //delete指针
//申请数组
int* p2 = new int[5];
memset(p, 0, 5 * 4);//menmery set 初始化数组
int* p3 = (int*)malloc(5 * 4);
p[0] = 12;
p[1] = 23;
cout << p[0] << " " << p[1] << endl;
delete[] p; //加[]释放数组,不加也看不出错误,但标准要求如此
system("pause");
return 0;
}