C++的基础知识

来源:互联网 发布:spss软件怎样转换数据 编辑:程序博客网 时间:2024/06/08 09:03

1.register

在c语言中register关键字的左右域是将变量直接放到寄存器,并且不允许register修饰的变量地址

在c++中可以对register修饰的变量取地址

c++有自己的优化方式,不需要用register关键字来优化

c++编译器发现对程序中register修饰的变量取地址,对变量的声明变的无效


2.变量检测性增强

在c++中不允许定义多个重复的全局变量

在c语言中多个重复的全局变量最终会被链接到全局数据区的同一个地址空间

3.struct 关键字的增强

在c 语言中struct 关键字是数据的集合,编译器不会认为是新的类型

在c++语言中struct 关键字定义的类型认为新的类型

3.三目运算符

c 语言三目运算符返回的结果保存在寄存器,返回的是变量值,不能做左值运算符

C++三目运算符返回的结果是变量值本身,是内存,可以做左值运算符

4.const

c 语言中的const 用法

const int a

int const b

const int  *c;

int *const d;

const  int * const e;

第一种和第二种意义一样,都是常整形

第三种是指向常整形的指针(内存中的数据不可以修改,但是本身可以修改)

第四种是常指针(本身不可以被修改,内存中的数据可以被修改)

第五种是常整形常指针(本身和数据都不可以被修改)

c语言中的const 修饰的变量是只读变量,拥有自己的内存

c++中的const

const 修饰的变量可能不分配内存空间,也可能分配内存空间

不分配内存空间时是放在符号表以key--value的形式存在

当对const 修饰的变量取 & 时分配内存空间,但是原来修饰的变量是不能够被修改的


5.const 和 #define

1.c++中const 类似于c  语言中的#define

2.c++中const 是由编译器处理,提供类型和作用域检查

3.#define 由预处理器处理,简单的文本替换


6 C++引用

1.变量是一段连续内存空间的别名

2.程序中通过对引用变量实现申请使用内存

3.c++中的引用是内存的别名

4.普通引用要初始化

7.内联涵数

内联函数关键字:inline 

内联函数关键字必须和函数的实现写在一起

内联函数的作用是:函数调用时,将函数体直接插入函数调用地方

内联函数是对C++的一种请求,C++ 可以拒绝

内联函数减少了普通函数(入栈、返回,跳转)等开销

内涵函数中不许有任何形式的循环函数和判断函数

内联函数中不允许取地址操作

8.占位参数

1.默认参数:

函数参数列表后面才能出现默认参数,一旦出现默认参数,其后面的参数必须是默认参数

2.占位参数和默认参数的结合

9.函数重载

用同一个函数名定义不同的函数

判断函数重载的标准:

1.函数名相同

2.函数参数个数不同

3.函数参数顺序不同

4.函数参数类型不同

函数返回值不能做判断是否是重载函数的标准

作用域限制运算符:

作用限定运算符的作用是:用于对当前作用域之外的同名变量进行访问

0 0
原创粉丝点击