C++学习笔记(三)

来源:互联网 发布:淘宝账户已被限制登录 编辑:程序博客网 时间:2024/06/06 19:29

21. 数组下标

C++中,数组下标的正确类型为 size_t


22. void*指针

Void*指针支持的操作:与另一个指针比较;向函数传递或者从函数返回;给另一个void*指正赋值。

特别的,不允许使用void*指针操纵它所指向的对象。


23. 指针和引用

两个区别:引用总指向某一个对象:定义时没有初始化是错误的;赋值行为差异:给引用赋值修改的是该引用所关联的对象的值。


24. 指针和const限定符

const int *p; 指向的对象是const的;不能把const对象赋值给一个普通指针,允许把非const对象赋值给指向const对象的指针。也可写为 int const *p。底层const。
int *const p; 指针为const的。顶层const.
特殊的:typedef
typedef string *pString;const pString p;

此时相当于:string *const p;   //此处的const是限定指针的,而不能简单的进行字面扩展。


25. 位操作符

<<(左移):在右边补0
>>(右移):无符号数,左边补0,有符号数则需要依具体情况而定。

移位的右操作数不可以是负数,而且必须是小于左操作数位数的值,否则,操作未定义。


26. 自增和自减操作符

只有在必要时才使用后置的自增或者自减操作符。后置方式需要先保存原来值。


27. sizeof操作符

将sizeof应用于表达式上,将获得该表达式的结果的类型长度,并不计算表达式的值。
对char类型或者值为char类型的表达式做sizeof操作保证得1。
对引用类型求sizeof将返回存放此引用类型对象所需得内存空间大小。
对指针做sizeof将返回指针所需要的内存大小,对指针解引用返回对象所需内存大小。

对数组做sizeof等效于类型乘以个数。


28. 异常

throw表达式:抛出异常
throw runtime_error(“….”);    //抛出标准异常try{//抛出异常}catch(runtime_error err){ cout<<err.what()<<endl;}      //输出异常信息


29. 标准异常

1) exception头文件定义了常见的异常类,类名为exception
2) stdexcept头文件定义了几种常见的异常类,包括:
exception:最常见问题
runtime_error:运行时错误
rang_error:越界
overflow_error:计算上溢

underflow_error:计算下溢

……


30. 数组形参

直接用数组名传递的是指向数组第一个元素的指针,当不能修改数组元素时声明为指向const对象指针。
  const int*
特别的:通过引用传递数组
形参是数组的引用,编译器不会将数组实参转化为指针,此时编译器将检查实参大小和形参是否匹配。
写法 void fun(int (arry&) [10]);        //括号必须,下标操作符有更高优先级

0 0
原创粉丝点击