c++
feng_shaoxia
这个作者很懒,什么都没留下…
展开
-
C++引用深入理解
今天复习引用(reference)的时候,突然想到,引用既然是对象的别称,那它有没有自己的地址(像指针(pointer))?然后自己测试了下,结果如下:i的地址和ref的地址一样。。。觉得还是不太对劲,然后上网搜索,找到了下面这篇博客。https://blog.csdn.net/feigegegegegegegeg/article/details/526136271、引用的本质是什么引用的...转载 2019-04-28 17:22:09 · 292 阅读 · 0 评论 -
c++内存对齐方式
转自:https://www.cnblogs.com/xylc/p/3780907.html(博客园)一,什么是内存对齐?内存对齐用来做什么?所谓内存对齐,是为了让内存存取更有效率而采用的一种编译阶段优化内存存取的手段。比如对于int x;(这里假设sizeof(int)==4),因为cpu对内存的读取操作是对齐的,如果x的地址不是4的倍数,那么读取这个x,需要读取两次共8个字节,然后还...转载 2019-07-18 09:28:46 · 189 阅读 · 0 评论 -
函数指针
以下内容摘自 c++primer(第五版)函数指针指向的函数而非对象。与其他指针一样,函数指针也指向特定的类型。函数的类型是由返回值和参数列表决定,与函数名无关。例如://比较两个字符串的长度bool lenghtCompare(const string &s1, const string &s2);函数的类型是bool(const string &s1, c...原创 2019-06-05 17:21:03 · 2539 阅读 · 0 评论 -
理解复杂的数组声明
数组能存放大多数类型的对象,例如,数组可以存放指针;又以为数组本身就是一个对象,所以可以定义数组的指针或者数组的引用。举一些例子:int *ptrs[10]; //含有10个指向int类型指针的数组int &refs[10]; //错误,引用不是对象int (*ptrs)[10];//指向含有10个int型对象的数组的指针int (&refs)[10]; //含有10...原创 2019-05-06 15:11:45 · 235 阅读 · 0 评论 -
auto && decltype
定义auto:auto类型标识符是让编译器通过初始值来推断变量的类型,必须有初始值;decltype:decltype标识符,它的作用是选择并返回操作数的数据类型,在此过程中,编译器分析表达式的类型,并不实际计算表达式,因此不需要一定有初始值。对比1、处理顶层const和引用auto会忽略掉顶层const,保留底层constconst int i = 0, &r = i...原创 2019-04-30 16:49:57 · 157 阅读 · 0 评论 -
constexpr变量
C++11规定,可以将变量声明为constexpr,用于编译器在编译阶段来验证变量的值是不是常量表达式。因此,constexpr修饰的变量必须用常量or常量表达式来初始化。到目前为止,算数类型、指针、引用都可以定义为constexpr,而Io、自定义类、string等不可以。constexpr int i = 20; //正确,20是常量表达式constexpr int i2 = i +...原创 2019-04-30 15:11:58 · 1139 阅读 · 0 评论 -
顶层const和底层const
顶层const(top-level const)顶层const是指修饰的对象不能改变,它适用于任何类型,类,指针。int v = 0;const int i = v; //top-level,i不能被改变int *const p = &v;//top-level, p不能改变顶层const 拷贝时,不受什么影响。int i = 0;const int j = 2;j = ...原创 2019-04-30 12:00:53 · 227 阅读 · 0 评论 -
初始化和对const的引用
一般来说,引用的类型必须与其所引用的对象类型保持一致;但是,在初始化常量引用(对const的引用)的时候,允许用任意表达式做为初始值,只要这个表达式的结果能转换成引用的类型即可。尤其,允许一个常量引用(对const的引用)绑定到非常量的表达式、字面值和对象中。int var = 0;const int &ref1 = var; //正确,常量引用绑定到非常量对象const int &...原创 2019-04-30 11:13:54 · 607 阅读 · 0 评论 -
int *&p和int &*p
int *&p从右往左结合,&p是一个引用, *(&p)是一个指针,int *&p是指向一个int型的指针的引用;int &*p从右往左结合,*p是一个指针,&(*p)是一个引用,int &*p是指向一个int型引用的指针,但是引用本身不是一个对象,因此不能指向引用的指针。...原创 2019-04-30 10:38:16 · 2400 阅读 · 1 评论 -
c11 chrono详解
转自:https://blog.csdn.net/hou8389846/article/details/77962343#commentBoxchrono是c++11的时间库,提供计时,时钟等功能。了解chrono,主要了解时间段(duration)和时间点(time_point)的概念。1、精度(ratio)时钟节拍(时间精度):template<intmax_t N, in...转载 2019-07-22 15:56:54 · 1366 阅读 · 0 评论