C/C++基础
文章平均质量分 77
Jurang
这个作者很懒,什么都没留下…
展开
-
字符数组与字符指针的区别。
char* s1 = "hello"; char s2[] = "world";相同点:都是表示一个字符串。不同点:操作系统对它们在内存中的存储方式作了不同的处理。下面是测试代码:#include int main(){ char *S1 = "Hello"; char S2[] = "World";// *(S1+2) = 'x'; // 执行时出错。 *(S2+5) = 'x'; // 执行时正确。 *(S2+6) = '/0';原创 2010-12-20 17:07:00 · 404 阅读 · 0 评论 -
简单谈谈strlen与sizeof的区别
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''/0''结尾的。4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。 5.大部分编译程序在编译的时候就把sizeof计算过了 是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因 char原创 2010-12-20 17:21:00 · 554 阅读 · 0 评论 -
malloc/free与new/delete的区别
相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加malloc/free。(2)在用法上也有所不同。函数malloc 的原型如下:voi原创 2010-12-20 17:54:00 · 441 阅读 · 0 评论 -
谈谈C++的类型转换符 static_cast、dynamic_cast、const_cast、reinterpret_cast
一、C风格(C-style)强制类型转换(T) expression// cast expression to be of type T二、C++的几种类型转换符号1. static_cast用法:static_cast ( expression ) Remarks:No run-time type check is made to help ensure the safety of the conversion.该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的原创 2011-03-14 17:42:00 · 846 阅读 · 0 评论 -
RTTI 运行时类型识别
RTTI(运行时类型识别)允许“用指向基类的指针或引用来操纵对象”的程序能够获取到“这些指针或引用所指对象“的实际派生类型。在c++中,为了支持RTTI,提供了两个操作符:1、dynamic_cast 操作符,它允许在运行时刻进行类型转换,从而使程序能够在一个类层次结构中安全地转换类型,把基类指针转换成派生类指针,或把指向基类的左值转换成派生类的引用,当然只有在保证转换能够成功的情况下才可以。2、typeid 操作符,它指出指针或引用指向的对象的实际派生类型。但是,对于要获得的派生类类型的信息,dynami转载 2011-03-14 17:55:00 · 657 阅读 · 0 评论