C++学习笔记(五)
来源:互联网 发布:java微信客服系统源码 编辑:程序博客网 时间:2024/06/14 01:09
1、静态数组与动态数组
只有静态数组可以用{}初始化,可以将指针看成是数组的迭代器,const创建数组时必须初始化,之后不能修改,静态数组的维数不能为0,动态数组的维数可以为0.
静态数组:int a[10];
动态数组:int *p=new int[5];
2、指针数组和数组指针
指针数组:int (*p)[4];相当于二维数组:int a[3][4];
数组指针:int*p[4];数组中每个元素都是int型指针。
3、做操作数必须是非const的左值
4、显示转换-----强制类型转换
强制转换避免使用!
C语言转换是不考虑对象原有的类型,C++不同设置以下4种方式:
static_cast<内置类型/类类型>(被转换的对象名)
dynamic_cast<内置类型/类类型>(被转换的对象名)
reinterpret_cast<内置类型/类类型>(被转换的对象名)
const_cast<内置类型/类类型>(被转换的对象名)
静态转换编译时做到类检查 如:
double p=3.145;
int a=static_cast<int>(p);
c语言风格;
double p=3.145;
int a=(int)p; 显示 或int a=p; 隐示
char *p="Hello";
int *q=p;隐示不行
int *q=(int *)p; C风格
int*q=static_cast<int *>(p);p的类型是字符非数字类型
int *q=reinterpret_cast<int *>(p);可以
能够隐示转换类型的可以使用static_cast不能使用隐示转换类型的使用reinterpret_cast。
dynamic_cast动态转换用于类中的继承。
如:
class CA {};
class CC:pulic CA{};
class CB{};
CA *p==newCC();
CC *p1=static_cast<CC *>(p);CC是CA的子类
CB *pb=static_cast<CB *>(p); 不可以
CB *pb=reinterpret_cast<CB *>(p);可以
CB *pb=dynamic_cast<CB *>(p);可以
const_cast 作用是去掉const,因为const的变量是无法修改的,可通过const_cast修改如:
const char *p="Hello";
char *q=const_cast<char *>(p);等价于将P所指向的重新设为可变变量。
case **(必须是整数如int,char型)biang量的定义只能在最后或加括号。
6、while(可以是关系运算,函数等只要最后能够得出的结果(0或非1)即可)先检查条件再运行循环体
cin.clear();回复cin的功能
do --while保证至少循环一次,先循环在检查条件。
break:打断while、do while、for、switch
continue:提前结束当次迭代,继续循环、
goto:禁止使用。
7、现代处理异常
try --catch--throw
容器用迭代器创建对象访问。
try中创建对象及调用等
throw抛出异常
catch接收异常输出异常原因。
8、函数参数传递-----引用形参(值可变)
引用不需要复制,通常实参到形参是一个复制过程效率低
若需要返回多个量,其中一个用return即可,其余的只要形参是引用即可。
引用的目的不是因为要修改实参而是不需要复制。
- 《C和指针》学习笔记(五)
- [C++]C++学习笔记(五)
- C语言学习笔记(五)指针
- C语言程序学习(五)笔记
- 《Effective C++》学习笔记(五)
- C语言学习笔记(五)
- 《effective c++》学习笔记(五)
- c语言学习笔记五
- C/C++学习笔记(五)
- Objective C学习笔记(五)
- 学习笔记(五)
- 学习笔记(五)
- Objective-C 2.0 学习笔记五(类)
- C语言学习笔记(五)--顺序程序设计
- IOS之Objective-C学习笔记(五)
- C/C++学习笔记(五)面向对象的编程
- (c/c++学习笔记五)数组和指针
- Objective-C学习笔记(五)-选择结构
- Android 入门必知篇
- JS 数据类型小结
- 背景建模或前景检测(Background Generation And Foreground Detection) 五 ViBe
- 编译错误之error C3861: “xxxx”: 找不到标识符
- kafka优点以及新特性
- C++学习笔记(五)
- 【jzoj5093】【GDSOI2017第四轮模拟day3】【字符串匹配】【哈希】
- 51NOD 1106质数检测
- angularjs1.5 组件内用函数向外传值
- 河南省第九届大学生程序设计竞赛 题解
- linux运算符
- Java集合之HashSet
- Linux之make的用法讲解
- 请求重定向与请求转发的区别