摘要: ``` void CalRunTime() { auto t1=std::chrono::steady_clock::now(); //run code auto t2=std::chrono::steady_clock::now(); //秒 double dr_s=std::chrono::duration(t2-t1).count(); ... 阅读全文
posted @ 2019-06-21 20:46 JohnRed 阅读(3310) 评论(0) 推荐(0) 编辑
摘要: volatile修饰变量:变量随时都可能发生变化(直接从变量的原始内存地址存取) 1、遇到volatile关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问 volatile int i=10; int a=i; //... //其他代码,并未明确告诉编译器, 阅读全文
posted @ 2019-06-21 19:56 JohnRed 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 全局变量与静态变量区、常量区、局部变量区(栈)、动态存储区(堆)、自由存储区 1、全局变量与静态变量区 》存放全局变量、静态变量,程序运行结束后释放 2、常量区 》存放常量 3、局部变量区(栈) 》存放局部变量、函数参数。由编译器控制,自动分配和释放 4、动态存储区(堆) 》malloc/free在 阅读全文
posted @ 2019-06-21 17:59 JohnRed 阅读(774) 评论(0) 推荐(0) 编辑
摘要: 修饰变量 静态变量存储在静态存储区,只初始化一次,未初始化时默认值为0。 全局静态变量:只能在本文件内使用 局部静态变量:每次调用都不重新初始化。 void TestStaticLocalVar() { static int data; data+=1; std::cout 阅读全文
posted @ 2019-06-21 16:15 JohnRed 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 修饰普通变量 修饰指针 const修饰类变量,类函数 阅读全文
posted @ 2019-06-21 14:49 JohnRed 阅读(256) 评论(0) 推荐(0) 编辑
摘要: ``` malloc是c的库函数,从堆区申请内存。 (+)new是c++运算符,从自由存储区申请内存。 malloc返回值是void*,需要判断返回值是否为空指针。如果申请内存成功,返回申请的内存地址,申请内存失败返回空指针。 使用free()函数释放内存,非空指针只能释放一次。 (+)new 返回值是申请对象的指针,申请内存失败抛出std::bad_alloc异常。使用delete释放普通对像... 阅读全文
posted @ 2019-06-21 14:22 JohnRed 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: ``` * 指针是一个变量有单独的存储空间(引用是一个对象的别名,没有单独的存储空间,使用的是原对象) * 指针初四化后可以改变,可以用来指向其他的对象(引用初始化后不能改变,不能用来引用其他的对象) * 指针可以为空(引用不能为空) * 指针的长度为4个字节(引用的长度位引用对象的长度) ``` 阅读全文
posted @ 2019-06-21 11:28 JohnRed 阅读(144) 评论(0) 推荐(0) 编辑