一些不常用的语法还是需要介绍一下的,不然自以为正确的会在上面耗时很久,虽然这些知识比较冷,但是设计出来还是有用武之地的。
脑子里留个印象比较好。
一、一些内置类型的大小
wchar_t这个内置类型,没有char那么常见,不过如果是实际场景中表示中文和日文等就需要用到了。
float一般大小为一个字的大小,即32位机器是4字节,double顾名思义是双字8字节了。
看来long并不是真的变长了。不同编译器分配的内存可能都不一样的,所以用之前最好还是先sizeof一下了解大小。
二、字面值常量
int a = 10;
int b = 011;
int c = 0x11;(0X11)
分别表示十进制,八进制,十六进制数字。
结果是9.
除了这些前缀,还有后缀表示的常量,如L和U(不分大小写)分别表示unsigned类型和long类型的。
三、引用
引用是变量的别名,使用的时候注意两点:
1.一旦指定对象,不能更换对象。
2.声明的时候必须初始化,即指定对象。
引用可以嵌套
一个对象可以被多次引用
四、typename和class的区别。
http://en.wikipedia.org/wiki/Typename
查了好多中文资料都看不懂,还是wiki比较给力。
在普通定义template函数,两者是同义词。
以下情况就不同了:
template <typename T>
void foo(const T& t){
// declare a pointer to an object of typeT::bar
typename T::bar* p;
}
Now the compiler knows for sure that T::bar
is a type, and will correctly makep
a pointer to an object of that type.
If you have any questions or ideas ,please feel free to contact me : )
thx.^^
QQ: 1623213673