那些年容易犯错的知识点(回顾)
来源:互联网 发布:淘宝关键字 编辑:程序博客网 时间:2024/06/15 15:01
点击打开链接(原文)
一、float变量与零值的比较
float,double变量都是不精确的,不可以用==或者!=来比较,要比较float和0:
const float NORM=0.00001;
float flag=0;
if((flag>=-NORM)&&(flag<=NORM))
{
equal
}
Else
{
not equal
}
二、sizeof和strlen比较
1、sizeof是操作符,strlen是函数
2、sizeof的参数可以是数据类型也可以是变量,strlen的参数只能是以’\0’结束的字符串
3、sizeof求的是参数占用内存大小,strlen求的是字符串长度,不包括结束符
4、数组作sizeof参数时不退化,传递给strlen时退化为指针。
三、malloc与new区别
1,new delete 是操作符可以重载,只能在c++中使用
2,malloc free是函数,可以覆盖,c、c++都可以使用
3,new delete分别调用对象的构造函数和析构函数
4,malloc仅分配内存,free回收内存
5,new delete返回某种数据类型的指针,而malloc和free返回空指针
四、指针式一种普通变量,其保存的数据是整型数据,和整型变量不同的是,它保存的整型数据指向一个内存地址
五、堆区:动态内存分配,malloc new申请,freedelete释放
栈区:函数内局部变量的创建都在栈上,函数执行结束,自动释放
全局区:全局变量,静态变量
文字常量区
程序代码区
六、设置地址为0x67a9的整型变量的值为0xaa66
int *ptr;
ptr=(int *)0x67a9;
*ptr=0xaa66;
七、计算二叉树深度
Int depth(BiTree T)
{
if(!T) return 0;
int d1=depth(T->lchild);
int d2=depth(T->rchild);
return(d1>d2?d1:d2)+1;
}
七、判断是否是2的n次方 若x&(x-1)==0,则是
八、Volatile,说明变量在程序执行中可能会被隐形改变(编译器之外的情况)
九、Sizeof更像是一个宏,在编译期间确定结果
Strlen在函数执行时确定结果
十、int *p=NULL;
sizeof (p)------------------------4
sizeif(*p)------------------------4
int a[100]
sizeof(a)--------------------------400
sizeof(a[100])--------------------4
sizeof(&a)------------------------400
sizeof(&a[0])---------------------4
sizeof(void)-----------------------0
sizeof(void *)---------------------4
十一、case语句中,后面只能是整型和字符型的常量或者常量表达式字符型在内存里也是按整数存储的
十二、定义静态变量ct,当程序中没有初始化时,编译器自动初始化为0;
十三、关于case
switch(s)
{
case 1:printf("%d",s+5);
case2:printf("%d",s+4);;
case 3:printf("%d",s+3);
default:printf("%d",s+2);break;
}
当输入1,时,运行结果输出:6543 一直到遇到break语句结束。Case只是个入口,一旦进去,在遇到break之前,一直执行到底。
- 那些年容易犯错的知识点(回顾)
- iOS中容易犯错的知识点
- java中容易犯错的知识点
- 容易犯错的做法
- iOS开发 容易犯错的知识点和不错的细小知识点(持续更新)
- java容易犯错的地方
- 容易犯错的一些东西
- Makefile容易犯错的语法
- Java中容易犯错的一个地方(转)
- Java中几个容易犯错的地方
- js 中容易犯错的变量声明
- [C&C++] 容易犯错的经验之谈
- Java线程同步容易犯错的坑
- javascript,一道容易犯错的小题
- 新手容易犯错的优先级问题
- 编写C程序容易犯错的地方
- 使用map时容易犯错的细节
- 那些经常使用去容易忽视的小知识点
- 【科研论文】新一代逆变电源智能监控系统研究
- delphi 动态调用DLL
- kvm启动虚拟机流程(8)
- 内网的IP地址
- TMS320x2833x, 2823x Boot Rom Reference Guide 部分选译
- 那些年容易犯错的知识点(回顾)
- 使用udp发送域名请求
- CodeBlock 快捷键大全
- C语言与汇编语言相互调用
- jquery常用方法
- kvm启动虚拟机流程(9)
- 直接拿来用!最火的Android开源项目
- liunx sys属性节点的使用(一个简单小例子)
- kvm启动虚拟机流程(10)