常用函数总结
来源:互联网 发布:淘宝上化妆品正品店铺 编辑:程序博客网 时间:2024/05/17 08:26
(1)memset 函数
【函数头文件】 #include<string.h>
void *memset(void *s, int c, size_t n);
【使用说明】 The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c.
【错误用法】
int array[10];
memset(array,1,10);//或者memset(array,1,sizeof(array)),都是不对的!
因为memset函数使用说明中提到的是按照byte来填充。
举例来说
char arr[10]; memset(arr,'a',10);
由于char只占一个字节(byte),因此函数的结果是将连续的10个字节都填充为'a'。这是我们所期待的结果!
int arr[10];memset(arr,1,10);
由于int占4个字节(byte),因此"1"对应的二进制(32bits下)为"00000000000000000000000000000001"(4bytes),塞到1byte(8bit)的中,高位被舍弃了。所以,填入数组中的值是"00000001"。然而总共有10*4=40个byte,却只有10个byte被填充,因此结果是"00000001……00000001**********"(前面总共10个"00000001")。因此,第一个数是"0x01010101"=16843009(10进制),数组其余部分的值则是随机值,读取出来会是很离谱的数!
有人说,可以这样memset(arr,1,sizeof(arr));
其实这样做,就是将数组的所有值都填充为"0x01010101",也就是int数组的初始值变为了16843009 !这确实有点出乎我们的预料!
【正确用法】
方法一:可以用任何值来初始化char数组!比如 memset(arr,'a',10);
方法二:可以用"0"来初始化任何类型数组!比如 memset(arr,0,sizeof(arr));//arr可以是char或int等类型数组!
方法二:可以用"-1"来初始化任何类型数组!比如 memset(arr,-1,sizeof(arr));//arr可以是char或int等类型数组!
【小结】本节部分参考:blog.csdn.net/whuslei 特此感谢。(2)strlen 函数
【函数头文件】 #include<string.h>
与sizeof()的区别
(3)size( ) 函数
【函数头文件】 #include<stdlib.h>
(4)sort( ) 函数
【函数头文件】 #include <algorithm>
这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。bool cmp(int a,int b){ return a>b;}
1.按照编号从小到大排序
2.对于编号相等的长方形,按照长方形的长排序;
3.如果编号和长都相同,按照长方形的宽排序;
struct Point{int a,b,c;};
bool cmp(const Point &x,const Point &y){ if(x.a!=y.a)return x.a<y.a; if(x.b!=y.b) return x.b<y.b; return x.c<y.c;}注意结构体比较时,前面必须加上const。
- asp常用函数总结
- php常用函数总结
- DB2常用函数总结
- SQL 常用函数总结
- Oracle 常用函数总结
- VBScript常用函数总结
- oracle常用函数总结
- SQL 常用函数总结
- SQL 常用函数总结
- oracle常用函数总结
- Oracle常用函数总结
- php常用函数总结
- oracle常用函数总结
- oracle常用函数总结
- php常用函数总结
- uchome常用函数总结
- Makefile常用函数总结
- ABAP常用函数总结
- 使用JSoup+CSSPath采集和讯网人物信息
- Eclipse抽疯治愈大招
- merge into 用法
- Mysql 重设丢失的root密码
- Spring Boot使用redis做数据缓存
- 常用函数总结
- jdbc代码抽取
- 个推推送iOS版 常见问题详解
- JavaScript的正则表达式
- unity3d 导出NGUI图集中的图片
- 把Java程序打包成jar文件包并执行
- pat1020
- mac 上的tree的安装
- Android 修改文件权限