#include <iostream>
using namespace std;
int main() {
auto basicLambda = [] { cout << "Hello, world!" << endl; };
basicLambda();
return 0;
}
编译报错:
$ g++ test.cpp -o test
test.cpp: In function ‘int main()’:
test.cpp:6:7: error: ‘basicLambda’ does not name a type
auto basicLambda = [] { cout << "Hello, world!" << endl; };
^
test.cpp:7:14: error: ‘basicLambda’ was not declared in this scope
basicLambda();
^
1869C++ 运算符
& :只有2个都为1,那么结果是1,否则为0;例如:1&1=1,1&0=0,0&0=0,0&1=0;
11 & 3 = 3
| :只要有一个是1,那么结果为1,否则为0;例如:1&1=1,1&0=1,0&0=0,0&1=1;
11 | 3 = 11
>> :向右位移,就是把尾数去掉位数,例如:153 >> 2,153的二进制是:10011001,屁股后面去掉 2 位 100110,100110 转化成十进制就是 38,153 = 10011001,38 =100110,"01" 去掉了。
<< :向左位移,就是把开头两位数去掉,尾数加位数00,例如:
在计算机中由于是32位的
^ :两个相同的数会变成0,反之是1,例如:1&1=0,1&0=1,0&0=0,0&1=1;
11^3 = 8
1868C++ 存储类
在一个类里建立一个 const 时,不能给他初值:
1867C++ 存储类
在局部变量前加上“static”关键字,就成了静态局部变量。静态局部变量存放在内存的全局数据区。函数结束时,静态局部变量不会消失,每次该函数调用 时,也不会为其重新分配空间。它始终驻留在全局数据区,直到程序运行结束。静态局部变量的初始化与全局变量类似.如果不为其显式初始化,则C++自动为其 初始化为0。
静态局部变量与全局变量共享全局数据区,但静态局部变量只在定义它的函数中可见。静态局部变量与局部变量在存储位置上不同,使得其存在的时限也不同,导致对这两者操作 的运行结果也不同。
1866C++ 存储类
1、寄存器存在于CPU中,速度很快,数目有限
存储器就是内存,速度稍慢,但数量很大。
计算机做运算时,必须将数据读入寄存器才能运算。
2、存储器包括寄存器,存储器有 ROM 和 RAM
1865C++ 存储类
如何解决 g++ 不支持 auto 自动数据类型?
在编写 Lambda 表达式的时候,发现 gcc 似乎不支持 auto 类型。
源代码 test.cpp 如下:
编译报错:
经过查询,发现 gcc 是 4.8.4 版本,应该是默认不开启,但是可以通过添加编译参数 -std=c++11 解决问题,