C++复习要点总结(一)
来源:互联网 发布:windows好用的v翻墙 编辑:程序博客网 时间:2024/05/22 15:40
C++对C语言的加强——类型加强
1. register 关键字增强
register关键字 请求编译器让变量直接放在寄存器里面,速度快。
在c语言中 register修饰的变量 不能取地址;在C++中可以取地址。
2. 变量检测增强
在C语言中,重复定义多个同名的全局变量是合法的, 在C++中,不允许定义多个同名的全局变量。
3. C++中所有的变量和函数都必须有类型
在C语言中
int f( ); 表示返回值为int,接受任意参数的函数
int f(void); 表示返回值为int的无参函数
在C++中
int f( ); 和int f(void)具有相同的意义,都表示返回值为int的无参函数
4. 三目运算符功能增强
例子:a< b ? a : b )= 30;
区别:C语言返回变量的值; C++语言是返回变量本身
C语言中的三目运算符返回的是变量值,不能作为左值使用
C++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方
注意:三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用 (a < b ? 1 :b )= 30;
C语言如何支持类似C++的特性呢?
====>当左值的条件:要有内存空间;C++编译器帮助程序员取了一个地址而已
1.const 限定符认识
作用:把一个对象转化成一个常量,只读。
int main()
{
const int a;// 1 第1个第2个意思一样 代表一个常整形数
int const b;// 2
const int *c; // 3 第3个 c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)
int * const d; //4 第4个 d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改)
const int * const e ; //5 第5个 e一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改)
return 0;
}
例子:const int bufSize=512;bufSize初始化之后就无法进行修改了。
1)在C++中,const符号表原理:存储方式是符号表即key value
key value
bufSize 512
2. C++编译器对const常量的处理原理:当常量声明时,是在符号表放入常量;使用常量时时直接以符号表中的值替换。
结论:C语言与C++中的const变量区别
C语言中const变量是只读变量,有自己的存储空间
C++中的const常量
可能分配存储空间,也可能不分配存储空间
当const常量为全局,并且需要在其它文件中使用
当使用&操作符取const常量的地址
2)const 与 #define异同之处
相同:都可以作为常量使用
异:const常量是由编译器处理的,提供类型检测和作用域检查,宏定义由预处理器处理,单纯的文本替换。
- C++复习要点总结(一)
- C总结复习(一)
- C语言要点总结(一)
- C要点(一)
- (一)操作系统概论复习要点笔记
- 操作系统复习要点总结
- 复习C要点
- C语言复习要点
- C++复习要点总结之十——多态(一)
- javase复习整理(一):基础要点、重点、易错点、多线程梳理总结
- C++复习要点总结之八——继承一
- UML要点总结(一)
- java继承复习要点总结
- C语言复习总结篇(一)
- c语言复习要点摘要
- 复习(要点)
- Java复习总结(一)
- C++复习要点总结十一——多态(二)
- mybatis 批量insert,update
- tableView分组 头部悬停
- std::map 删除指定条件的元素
- hadoop系列文档3-配置Hdfs高可用HA
- Oracle回收站操作
- C++复习要点总结(一)
- 【java框架-复习spring】spring中各个模块的作用
- 统计字符
- 《FPGA Verilog篇》Part 1 跑马灯例程的实现方法锦集
- VectorDrawable 详解
- OC中getter和setter的运用
- JAVA学习笔记02
- 欢迎使用CSDN-markdown编辑器
- 数据存储结构