C++备考(一)概念

学习没有捷径,但考试有捷径

临近考试,虽然之前对一些概念搞清楚了,但时日一长,很多又模糊了。因此利用整理成章,将知识重拾。
考试的范围如下:
1. 常量(const、符号、字符串常量、立即数)
2. 引用和指针

3. 类的封装和隐藏(静态成员、友元函数)
4. 类的初始化(初始化方式和顺序)
5. 类的继承(继承方式、构函列表、多继承)
6. 类的多态性(函数重载、运算符重载、虚函数、虚函数表)
7. 类的作用域概念

数据类型

逻辑型(bool型):
true为1,false为0

 bool judge;
 judge = (0 == 1);
 cout <<"judge: "<< judge << endl;

打印结果为0

常量
  • 字符常量:
    每个字符常量表示一个字符,当单引号内多于一个字符时,按规则解释为一个字符。
    | ‘\0’ | 空字符 |
    | ‘\12’ |换行符|
    |’\x5A’ |‘Z’ |
  • 枚举常量:
    用户定义类型,实际是int类型的一个子集。
enum MyEnum
{
  good,better=3,best
};
MyEnum code = MyEnum(best);//可以定义变量,通过自身枚举成员赋值
  • 符号常量:
    先声明,后使用。不可赋值改变。
int c=3;
//cin >> c;
const int a = 4, b = a*5, d =c;//只要在声明时初始化即可
const int pai = 3.1415926;
知识点
  1. 全局变量在函数定义、类定义、程序块之外声明的变量,若不专门初始化,自动初始化为0.
  2. static静态变量生存期与全局变量相同,未赋初值系统也会自动赋初值为0.
  3. 变量的作用域可能小于生存期。由于可以在程序的不同部分为不同变量取一个名字。
辨析
  • 指向常量的指针
const char* p = "what";
char mark[10] = "why";
p = mark;

可以改变指针指向,但不可改变指针指向的内容

  • 常量(型的)指针
char name[10] = "cascara";
char* const pname = name;
*pname = 'C';

可改变指针指向的内容,但不可改变指针指向。

运算符
  • 不常用位运算:
    |&|按位与|
    | | |按位或|
    | ^ |按位异或|
    |<<|按位左移|
    |>>|按位右移| 指向箭头所在方向移位
    |~|按位取反|

  • 优先级重点:

int m[2]={2,9};
*m++;//先与增量结合,再取值

程序有误,m为数组地址,不可修改的左值,修改为:

int m[2]={2,9};
int* pm=m;
*pm++;
  • 单目、赋值右结合,其余左结合
空指针
int i = 1;
void* pv;
pv = &i;
cout << *(int*)pv << endl;//必须进行类型转换才能显示结果
C++特性
  1. 初始化可用函数表示法
int i(6);
char name[10]("cascara");
  1. 用作用域运算符访问被隐藏的全局变量
int i;
int main(void)
{
	int i = 0;
	::i = 6;
	cout << "local i: " << i << endl;
	cout << "global i: " << ::i <<endl; 
	return 0;
}

立即数

第一次接触这个名词,网上搜索相关文章:立即数

概念

通常把在立即寻址方式指令中给出的数称为立即数

立即寻址方式只能用于源操作数字段,不能用于目的操作数字段,经常用于给寄存器赋初值。
例:MOV AX,251 ;将十进制数251送入寄存器AX,“251”是立即数

判定方法
  1. 把数据转换成二进制,从低到高写成 4 个一组,最高位不够一组的补 0;
  2. 数 1 的个数,如果大于 8 个,肯定不是立即数,如果小于 8 个看步骤 3;
  3. 如果数据当中有连续大于等于 24 个 0,循环左移偶数位,使高位全部是 0;
  4. 找最高位 1,去掉前面的最大的偶数个 0 ;找到最低位的 1,去掉后面最大偶数个 0;
  5. 数剩下的位数,如果小于等于 8 位,那么这个数就是立即数,否则不是立即数。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值