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.

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