C++
文章平均质量分 52
咕嘟咕嘟咕嘟
这个作者很懒,什么都没留下…
展开
-
sizeof和strlen的区别
sizeof和strlen的区别1.sizeof与strlen的区别。(1)strlen是函数,sizeof是运算符。(2)2. strlen 测量的是字符的实际长度,以’\0’ 结束。而sizeof 测量的是字符的分配大小。 char str[20] = "hello"; printf("strlen: %d\n", strlen(str)); printf("siz原创 2018-03-07 17:00:18 · 153 阅读 · 0 评论 -
快速幂
快速幂原理首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下: 假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1),例如当b==11时,a^11=a^(2^0+2^1+2^3) 11的二进制是1011,11...转载 2018-03-14 21:23:45 · 107 阅读 · 0 评论 -
将二维数组作为函数的参数传递
如何将二维数组作为函数的参数传递可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如: void Func(int array[3][10]); void Func(int array[][10]); 二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的: ...原创 2018-03-08 17:15:11 · 851 阅读 · 0 评论 -
C++运算符重载
C++运算符重载C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。运算符函数定义的一般格式如下: <返回类型说明符&...原创 2018-03-08 21:11:56 · 87 阅读 · 0 评论 -
递归反转链表
输入一个链表,反转链表后,输出链表的所有元素。链接:https://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca 来源:牛客网struct ListNode { int val; struct ListNode *next; ListNode(int x) : ...原创 2018-03-15 21:54:32 · 774 阅读 · 0 评论 -
char数组与char指针
char数组与char指针的区别和联系字符串(char*)与字符数组(char[])区别在C语言中,对字符串的操作主要有两种方式:一是字符数组(char[]),二是使用字符指针(char*)。接下来最这两种所使用的情况做彻底的说明:一、字符数组字符数组的定义有两种方式: 1.char s[n]; n表示数据的大小。该语句可以理解为 声明一个字符数组,并且编译器为该字...转载 2018-03-12 17:13:21 · 1793 阅读 · 0 评论 -
new和malloc的区别
new和malloc的区别new和malloc的区别是C/C++一道经典的面试题,整理如下:属性 new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。参数 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。返回类型 new操作符内存分配成功时,返回的...转载 2018-08-15 15:26:39 · 172 阅读 · 0 评论