参考:http://zh.cppreference.com/w/cpp/language/expressions 不求值表达式:表达式在编译期被使用,运行期无计算。例如: 但是,typeid有个例:令 typeid(expr), 当expr是广义左值(glvalue)时,expr是对应的运行期计算的 ...
分类:
编程语言 时间:
2018-03-21 13:57:02
阅读次数:
229
C++17, prvalue被重新定义,我的思路都乱了。 左值(lvalue):具有id属性的值。能通过写代码的方式抓住的一个值。例如: f()这个函数表达式的value catagories是lvalue。每次你写f()都能抓住相同的那个地址的值(存放在g_var)。 纯右值(prvalue):没 ...
分类:
编程语言 时间:
2018-03-18 20:10:44
阅读次数:
218
1.赋值运算符 = 表示:取右边的值(即右值),把它复制给左边(即左值)。右值可以是任意的常量、变量或表达式(只要可以生成一个值)。 左值必须是一个明确的、已命名的变量 += 表示: 左边的变量值,加上右边的值,再赋值给左边的值 相似的有-=、/=、*=、%= 2.算数运算符 算数运算符符有+ - ...
分类:
编程语言 时间:
2018-03-10 00:15:14
阅读次数:
260
一、错误信息解析: 1、error,表示这是一条出错信息。 C语言信息一般有error(出错)和warning(警告)两种。 error是编译器遇到了致命错误,无法继续进行编译,必须修改。 warning是C语言编译器找到了一个可能非法的位置,但不影响编译,程序还能运行,有可能运行出错,也可能不影响 ...
分类:
其他好文 时间:
2018-03-03 18:17:26
阅读次数:
225
decltype关键字:1.计算表达式的类型 sizeof操作符的值是一个整数,表示类型的长度(字节数) typeid操作符的值是一个对象,其中包含了类型的信息 decltype操作符的值是一个类型,可用于其它对象的声明 2.对于函数表达式,decltype将返回该函数返回值的类型,对于左值表达式, ...
分类:
其他好文 时间:
2018-02-24 21:59:15
阅读次数:
186
这篇文章要介绍的内容和标题一致,关于C++ 11中的这几个特性网上介绍的文章很多,看了一些之后想把几个比较关键的点总结记录一下,文章比较长。给出了很多代码示例,都是编译运行测试过的,希望能用这些帮助理解C++ 11中这些比较重要的特性。 关于左值和右值的定义 左值和右值在C中就存在,不过存在感不高, ...
分类:
编程语言 时间:
2018-02-10 11:25:16
阅读次数:
177
C++11 左值、右值、右值引用详解 左值、右值 在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。 在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。举个例子,int a = b+c, a 就是左值,其有变量名为a ...
分类:
编程语言 时间:
2018-02-10 11:17:57
阅读次数:
125
1. 指针 1.1 一个指针包含两方面:a) 地址值;b) 所指向的数据类型。 1.2 解引用操作符(dereference operator)会根据指针当前的地址值,以及所指向的数据类型,访问一块连续的内存空间(大小由指针所指向的数据类型决定),将这块空间的内容转换成相应的数据类型,并返回左值。 ...
分类:
编程语言 时间:
2018-01-27 00:39:47
阅读次数:
482
struct A{ char array[100]; //array不知道在哪里呢?只是告诉c语言编译器有这么一种类型结构。是一种语法形式,不要误解。 int a;}; struct B{ char *p = malloc(100); //所以不能这样写! nt a;}; int main(){ s ...
分类:
编程语言 时间:
2018-01-21 01:09:22
阅读次数:
179
不能重载的运算符有 . 和 .* 和 ?: 和 :: 和 sizeof 友元函数和成员函数的使用场合:一般情况下,建议一元运算符使用成员函数,二元运算符使用友元函数 1、运算符的操作需要修改类对象的状态,则使用成员函数。如需要做左值操作数的运算符(如 =,+=,++) 2、运算时,有数和对象的混合运 ...
分类:
其他好文 时间:
2018-01-14 20:23:38
阅读次数:
207