C/C++
文章平均质量分 73
wjimin2008
这个作者很懒,什么都没留下…
展开
-
字符串库函数strlen,strcmp,strcpy,strncpy,strcat,strncat自定义实现
size_t strlen(const char* str) { assert(str!=NULL); size_t length=0; while((*str++)!='\0') ++length; return length; } 不用变量,递归实现的strlen原创 2014-04-20 20:02:36 · 862 阅读 · 0 评论 -
sizeof和strlen的区别
sizeof和strlen的区别 1)sizeof是个操作符,strlen是库函数。 2)sizeof的参数可以是数据的类型,也可以是变量,而strlen只能是以结尾为’\0’的字符串作参数。 3)编译器在编译时就计算出了sizeof的结果,而strlen函数必须在运行时才能计算出来。并且sizeof计算的是数据类型内存的大小,而strlen计算的是字符串实际的长度。 4)数组做sizeo原创 2014-04-25 20:32:42 · 537 阅读 · 0 评论 -
malloc/free与new/delete的区别
malloc/free与new/delete的区别 相同点:都可用于申请动态内存和释放内存。 不同点: (1)操作对象不同。malloc/free是C/C++语言的标准库函数,new/delete是C++的运算符。由于malloc/free是库函数而不是运算符,不再编译器控制权限之内,所以无法执行构造函数和析构函数。 new的执行过程是:首先,调用名为operator new的标准库函数,原创 2014-04-25 21:33:52 · 792 阅读 · 0 评论 -
指针的几种形式(常量指针和指针常量,指针数组和数组指针,指针函数和函数指针,数组和指针)
int const* a; a是指向整形常量的指针,a指向的元素为常量,但a本身可以修改。等效于const int* a; int* const a; a是指针常量,a本身不能修改,但是a的指向的元素可以修改。 const int* const a; a是指向常量的且本身不能修改的指针。 int *a[10]; a是指针数组,a是含有10个元素的数组,数组中的元素为原创 2014-03-28 14:45:16 · 810 阅读 · 0 评论 -
static关键字的作用
static是 不考虑类,static的作用 1)隐藏 当我们同事编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。如果加了static将会对其他文件隐藏。利用这一特性可以在不同的文件中定义同名的函数或者同名变量,而不必担心命名冲突。 2)static对于函数而言仅仅只是隐藏,对于变量还有两个作用。1、static变量默认初始话为0。2、保持局部变量内容原创 2014-04-25 21:21:38 · 499 阅读 · 0 评论 -
类成员函数的重载、覆盖和隐藏(重写)的区别
1)重载的概念相对比较简单,只有在同一个类定义中的同名成员函数才存在重载关系,主要特点是参数类型和数目有所不同(不能仅仅依靠返回值类型的不同来区分重载函数)。另外重载和成员函数是否是虚函数无关。 总结一下成员函数被重载的特征:1、相同的范围(同一类中)。2、相同的函数名字。3、不同的参数列表。4、virtual关键字可有可无。 2)成员函数覆盖是指:在派生类中覆盖基类中的同名函数,要求基类函数原创 2014-04-25 22:56:06 · 1120 阅读 · 0 评论