c++复习(六)

           **第六章      数组的定义与使用**

数组的定义
类型说明符 数组名【常量表达式】【常量表达式】
下标从0 开始
数组必须先定义,再使用,可以逐个引用数组元素

一维数组的存储:
数组在内存中顺序存放,他们的地址是连续的,数组名字是数组首元素的内存地址,数组名是一个常量,不能被赋值。

一维数组初始化:
1 列出全部元素的初始值(可以不指定长度)
2 只列出一部分元素的初始值(需要指定长度)

二维数组的存放:按行存储

二维数组的初始化:
1.将所有初值写在一个{}内,按顺序初始化
2.分行列列出元素的初值,
3.可以只对部分元素初始化
4.列出全部初始值时,第一维下标可以省略
5.如果不作任何初始化,局部作用域的非静态数组中会存在垃圾数据,static数组中的默认数据为0;
6.如果只对部分元素初始化,剩下的未显示初始化的元素,将自动被初始化为0 ;

指向数组元素的指针:
数组名就是地址
例:point *pa[2];//由pa[0],pa[1]两个指针构成;
指针数组内存空间可以不连续,而普通数组的内存空间连续;

什么情况下需要用指针做参数?
需要数据数双向传递时(引用也可以达到这个效果)
传一组数据,只传首地址效率较高
(在程序中浮点数精度较高时会有一定差距,判断两个浮点数是否相等,可以让其相减,其值小于10的多少次方)
例:分离浮点数的整数和小数部分

指针类型的函数:
不要将非静态局部地址用作函数的返回值,他的作用域和地址都只作用于函数内。

指向函数的指针:
定义:*存储类型 数据类型(函数指针名 )();
函数指针指向的是程序代码的存储区。
用途:函数回调
通过函数指针调用的函数,例如将函数指针作为参数传递给一个函数,使得在处理相似事件的时候,可以灵活的使用不同的方法
调用者不关心谁是被调用者,须知道具有一个特定原型和限制条件的被调用函数

对象指针:
类名 *对象指针名
例如:Point a(5,10);
Point *ptr;
ptr=&a;
通过指针访问对象成员:对象指针名->成员名
例如:ptr->getx()相当于(*ptr).getx();

this 指针:
隐含于类的每一个非静态成员函数中,指出成员函数所操作的对象,系统先将该对象的地址赋给this指针,然后调用成员函数,成员函数对对象的数据成员进行操作时,就隐含使用了this指针
例如:Point类的getx()函数中的语句,return x;就相当于return this ->x.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章