操作符和库函数互混淆在C语言中,sizeof是操作符而不是库函数
在C++语言中,类似的有 sizeof、typeid、new、delete和throw
sizeof与strlen、new/delete和malloc/free的比较
1、性质(机制)不同:前者为操作符,编译时操作;后者为库函数,运行时操作
2、操作对象不同:sizeof操作对象可以是类型和变量/常量,strlen只能是以 结束的字符串
new/delete在malloc/free基础上可以操作对象(类的实例)
3、操作结果不同:sizeof返回的是数据类型所占内存的大小,strlen返回的是除 的字符串长度
new/delete返回的是某种类型的指针,malloc/free返回的只是void指针
注意:sizeof和strlen操作数组时,strlen是数组退化成指针;
如何是数组退化?
类型的大小 sizeof(type);
对象的大小 sizeof object; //注意操作对象
(运行时)类型ID tpyeid(expr); //有何用?
创建对象 new object;
删除对象 delete object;
删除数组 delete [];
抛异常 throw;
添加新评论0 条评论