C++知识点
来源:互联网 发布:战斗妖精雪风模型淘宝 编辑:程序博客网 时间:2024/06/05 19:29
- 关于strlen
void test3(char* str1){ if(str1 == NULL){ return ; } char string[10]; if( strlen( str1 ) <= 10 ) { strcpy( string, str1 ); }}应将<=改为=,strlen结果不统计"\0"。- strcpy函数的实现
//strcpy函数char *strcpy(char *strDest,const char *strSrc)//用const修饰源字符串,防止修改源字符串;{assert((strDest!=NULL)&&(strSrc!=NULL));//检查指针的有效性,保证代码健壮;char *address=strDest;while((*strDest++==*strSrc++)!='\0')NULL;//用NULL代替0,如果出现拼写错误,编译器会检查出来;return address;//为了实现程序的链式表达}
str与所指内存区域不可以重叠且必须有足够的空间来容纳src的字符串;- 注意内存重叠问题
- strcpy和memcpy的区别
1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如,字符数组、整型、结构体、类等。
2、复制的方法不同。strcpy不需要指定长度,遇到被复制字符的串结束符“\0”才结束,所以容易溢出,memcpy是根据第三个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy,而需要复制爱其他类型数据一般用memcpy。- 关于数组名
以下为Windows NT下的32位C++程序,请计算sizeof的值void Func ( char str[100] ){ sizeof( str ) = ?}void *p = malloc( 100 );sizeof ( p ) = ?sizeof(str)=4;
sizeof(p)=4;
数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,还失去了其常量属性,可以作自增、自减等操作,可以被修改。
数组名本质如下:- 数组名指代一种数据结构,这种数据结构就是数组:
char str[10];cout<<sizeof(str)<<endl;输出结果为10,str指代数据结构char[10];- 数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改。
char str[10];str++;//编译出错,提示str不是左值;- 数组名作为函数形参时,沦为普通指针;
windowsNT 32平台下,指针长度(占内存大小)为4字节。故sizeof(str),sizeof(p)均为4;- 宏定义
//写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。#define MIN(A,B) ((A)<=(B)? (A):(B))
宏定义可以实现类似于函数的功能,但是终归不是函数,而宏定义中括弧的“参数”也不是真的参数,在宏展开的 时候对“参数”是一对一的替换。
所以使用宏定义要注意:- 要将宏定义中的“参数”和整个宏用括号括起来,只有注意宏后面没有分号“;”
- 防止宏的副作用;
宏定义:对于MIN(*p++, b);((*p++)<=(b)? (*p++):(b))指针p会做2次自增操作;- 零值判断
if(!var) //BOOL,是逻辑判断if(var==0) //int const float EPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON) //floatif(var==NULL) //指针变量
阅读全文
0 0
- c知识点
- C 知识点
- C/C++code知识点
- C/C++【知识点笔记】
- C基础知识点小记
- c#知识点 net
- C/C++知识点1
- c语言知识点
- C/C++面试知识点
- C语言知识点
- object-c 知识点
- [C++]指针知识点小结
- Objective-C知识点汇总
- Objective-C语言知识点
- C知识点累积篇
- C语言常见知识点
- c语言知识点补遗
- c语言知识点补遗
- 上传单个或多个文件
- dllmain测试与相关实验
- centos 7 安装gitlab
- [leetcode]18.4Sum(Java实现)
- SearchView结合Toolbar 筛选RecyclerView中的内容,类似知乎、google play实现的效果
- C++知识点
- java炒冷饭系列05 使用多态时需要注意的几点
- 阿里云服务器怎么配置VPN
- 集合
- sql左外连接应用例子
- 八皇后问题
- H5游戏的多端传播力
- 腾讯后台面试
- java List