在程序编译时会被链接到目标代码中
编译之后程序文件大,但加载快,隔离性也好
.so动态库在程序编译时并不会被链接到目标代码中
在程序运行是才被载入
多个应用程序可以使用同一个动态库
-shared 用于生成动态库
&a取地址定义一个变量:int a = 3;
&a 这个就是取变量的地址
指针指针就是内存地址
可以是变量的地址,或函数的入口地址
int *p指针变量存储地址值的变量为指针变量
int *p = &a; //定义指针变量
p = &b; //修改指针变量的值
定义指针变量时必须带*,给指针变量赋值时不能带*
使用指针是间接获取数据,使用变量名是直接获取数据,前者比后者的代价要高
*&a; //等价于a
&*p; //等价于p
详情:http://c.biancheng.net/view/1991.html
*p取数据这里的*是指针运算符,用来取某个地址上的数据int **p二级指针变量这个地址对应的存储单元存储的值也是一个地址基础数据类型 virtual method(){};虚函数为了允许用基类的指针来调用子类的这个函数
子类可以不实现
virtual method()=0;纯虚函数纯虚函数是为了实现一个接口,起到一个规范的作用
子类必须实现
printf("%x",50)十六进制输出 std::string str = "hello " + std::to_string(1);字符串和数字拼接 printf("%s", path.c_str());c方式打印string string str(ch);字符数组转string