1 void main() 2 { 3 char *arr="0123456789"; 4 cout<<sizeof(arr)<<endl;//4 5 cout<<sizeof(*arr)<<endl;//1 6 char ss2[]="0123456789"; 7 cout<<sizeof(ss2)<<endl;//11 8 cout<<strlen(ss2)<<endl;//10注意sizeof 和 strlen区别 strlen 检测到\0后停止 9 cout<<sizeof(double)<<endl;//8 10 cout<<sizeof(float)<<endl;//4 11 cout<<sizeof(long int )<<endl;//4 12 cout<<sizeof(short int)<<endl;//2 13 cout<<sizeof(unsigned long int)<<endl;//4 14 cout<<sizeof(char)<<endl;//1 15 cout<<sizeof(unsigned char)<<endl;//1 16 17 }
sizeof(空类)为1
sizeof(虚继承)为4,因为涉及虚表(虚指针)
内联函数:要做类型检查,这事内联函数比宏定义的优势。
内联函数一般用在如下情况:
(1)一个函数不断被重复调用
(2)函数只有简单几行,且函数中不包含
在C程序中 const 的用法主要是:
1、定义常量 2、修饰函数形参 3 、修饰函数返回值 当定义前两种时可以理解为read-only
const 和 #define相比有什么不同?
1、const 常量有数据类型,而宏常量没有数据类型,编译器可以对前者进行类型安全检查,而对后者只有字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误。
2、有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。