c++知识与易错点总结

## 运算符
1.
int a=1,b=4,c=3,d=2,r;
r=a<b?a:c<d?c:d;//先进行后面 c<d?c:d
//r=1;
2.

## 选择

## 循环
1.
	int x=3; 
	do{X-=2;
	cout<<x;
	}while(!(--x)); 
执行这个程序的输出结果是1,-2;
//注意!(--x)只是进行判断而不是赋值,x此时=--x而不是!(--x)
2.

## 函数
函数的调用可分为引用调用和传值调用
1.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数:
2.有返回值,但返回一个不确定的值
在C++中把不返回任何类型的函数应该说明为: void类型
3.一个函数为void x(int,char ch=’a’),另一个函数为void x(int),则它们:可以在同一程序中定义,但不能重载
4.若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值,且设置默认值应先设置右边的再设置左边的
例:下列函数原型声明中错误的是:D
A.
void fun(int x=0,int y=0;
B.
void fun(int x,int y);
C.
void  fun(int x,int y=0);
D.
void fun(int x=0,int y);
5.重载函数在调用时选择的依据中,错误的是:D
A.
函数的参数
B.
参数的类型
C.
函数的名字
D.
函数返回值类型
6.在函数的引用调用时,实参和形参应该是使用:变量值和引用
7.内部静态变量的作用域是:定义该静态变量的函数内部
8.不能实现函数之间数据传递的是:局部变量
9.递归函数不能作为内联函数,内联函数内不能有循环语句
## 数组
1.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出.
2.指针指向不同基类型的变量长度相同
3.以数组名作为函数的实参:
a、数组名代表数组首元素的地址,并不代表数组中的全部元素
b、时参数组和形参数组共同占用一段内存空间
c、在用变量作函数参数时,只能将实参变量的值传给形参变量,在调用函数的过程中如果改变了形参的值,对实参没有影响,即实参的值不因形参值的改变而改变。而用数组名作函数的参数时,如果改变了形参数组元素的值将同时改变实参数组元素的值。在程序设计中往往有意识的利用这一点改变实参数组的值。
d、实际上,声明形参并不意味着真正建立一个包含若干元素的数组,在调用函数时也不对他分配存储空间,只是用array[ ]这样的形式表示array是一位数组的名字,用来接收实参传来的地址。因此array[ ]中括号内的数值并无实际意义,编译系统不会对一维数组方括号内的内容做处理。
4.字符数组中的最后一个字符不一定非要是'\0'

## 枚举
enum{a,b,c,d=5,e,f};
从第一个数为0开始依次为012567;
也就是说枚举类型里的数据从第一个下标为0开始依次递增
当遇到赋值时,下一个从该数据被赋予的值开始递增 如上述 d=5,则e=6,f=7

##文件
1.读取二进制文件要用到char*逐字符的读取
而不是float型的数据就用float*
## 类
1.静态数据成员是类所有对象共享的数据
2.类型向上兼容原则:
·派生类的对象可以赋值给基类的对象
·派生类的对象可以初始化基类的引用
·基类的指针可以指向派生类对象

## 继承与多态
1.静态联编是通过重载函数实现的,动态联编是通enum过虚函数实现的,前者的代码块是在编译时被调用,后者的函数代码块在运行时被调用

##二叉树
1.完全二叉树与满二叉树深度的计算
n为二叉树的结点
完全二叉树的深度为:log以2为底n的对数再加1 然后向下取整
如结点为30的完全二叉树 其深度为5;
满二叉树的深度为:log以2为底(n+1)的对数
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值