Sizeof:计算在栈中分配的内存大小
1). 无论什么类型指针,其大小均为4个字节
2). char型占1个字节,int占4个字节,short int占2个字节,long int占4个字节,float占4字节,double占48字节,string占4字节
3). 一个空类占1个字节,单一继承的空类占1个字节,虚继承涉及到虚指针所以占4个字节
4). sizeof不计算static变量的内存,因为其不是在栈上分配内存
5). 数组的长度:若指定了数组长度,则不看元素个数,总字节数=数组长度*sizeof(元素类型);若没有指定长度,则按实际元素个数类确定;若是字符数组,则应考虑末尾的空字符
6). unsigned影响的只是最高位的意义,数据长度不会改变,所以sizeof(unsigned int)=4
7). 自定义类型的sizeof取值等于它的类型原型取sizeof
8). sizeof后如果是类型名则必须加括号,如果是变量名可以不加括号,这是因为sizeof是运算符
9). 当使用结构类型或者变量时,sizeof返回实际的大小。当使用静态数组时返回数组的全部大小,sizeof不能返回动态数组或者外部数组的尺寸
2.
MT:mutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库
MTd:mutithread+debug,多线程调试版,连接LIBMITD.lib库
MD:MT+DLL,多线程动态库,连接MSVCRT.lib库,这是个导入库,对应动态库为MSVCRT.dll
MDd: MT+DLL+debug,多线程动态调试库,连接MSVCRTD.lib库,对应动态库为MSVCRTD.dll
3. 有符号整型与无符号整型:两种类型的取值范围的绝对值是相同的;不同的是,有符号:表示其取值范围从负到正;而无符号则从0到正。如short:有符号16位整型,取值为:-32768到32767;而unsigned short:无符号16位整型,取值为:0到65535.
byte:8位整型
short:16位整型
int:32位整型
long:64位整型