關於數組:
注意:
可以用下面的表達式計算出數組A的長度:
sizeof (A) / sizeof(int);
若數組未進行初始化,靜態數組的元素均初始化為0;在函數體內定義的動態數組,其元素沒有初始化,為一個隨機值:
static int A[10]; //默認各元素的值為0
int A[10]; //各元素的值為隨機數
數組必須先定義後使用,且只能逐個引用數組元素的值而不能一次引用整個數組全部元素的值。
下標表達式可以是常量、變量、表達式,但必須是正整數,不允許為負。
整個數組不允許進行賦值運算、算術運算等操作,只有元素才可以,例如:
數組作為函數的參數,傳遞的是數組的地址。
a. 由於形參數組就是實參數組,所以在被調函數中使用形參就
是在間接使用實參,這點與變量作為函數參數的情況是不同的。
b. 既然形參數組就是實參數組,所以函數調用時不會為形參數組分配存儲空間。
c. 形參數組不過是用數組定義這樣的形式來表明它是個數組,能夠接收實參傳來的地址,形參數組的長度說明也無實際作用。因此形參數組甚至可以不用給出長度。
d. 雖然實參數組將地址傳到了被調函數中,但被調函數並不知道實參數組的具體長度,那麼假定的大小對於實參數組來說容易數組越界。實際編程中可以采用以下方法來解決: 函數調用時再給出一個參數來表示實參數組的長度。<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjxiciAvPg0KPGltZyBhbHQ9"求數組所有元素的平均值" src="/uploadfile/Collfiles/20160918/20160918092133540.png" title="\" />
e.多維數組作為函數的參數,形參數組第1維可以與實參相同,也可以不相同;可以是任意長度,也可以不寫長度;但其他維的長度需要相同:
數組作為函數的參數:
數組元素作為函數的參數
a. 一維數組元素可以直接作為函數實參使用,其用法與變量相同。
整個數組作為函數的參數
a. 數組作為函數的形參,基本形式為:
b.數組參數的傳遞機制
c. 如果實參使用數組名調用,本質上是將這個數組的首地址傳遞到形參中。
d. 盡管數組數據很多,但它們均從一個首地址連續存放,這個首地址對應的正是數組名。
e. 數組實參a傳的是數組首地址,形參A定義為數組形式,它現在的地址與實參數組a一樣,則本質上形參數組A就是實參數組a(內存中兩個對象所處位置相同,則它們實為同一個對象)。
字符串的處理:
字符數組
a. 用來存放字符型數據的數組稱為字符數組,其元素是一個個的字符。
字符串的概念
a. C++語言規定字符串是以’\0’(ASCII值為0)字符作為結束符的字符數組。
b. 在程序中可以通過判斷數組元素是否為空字符來判斷字符串是否結束,換言之,只要遇到數組元素是空字符,就表示字符串在此位置上結束。
c. 字符串常量是字符串的常量形式,它是以一對雙引號括起來的字符序列。
d. C++總是在編譯時為字符串常量自動在其後增加一個空字符。
字符串的輸入和輸出:
a. 使用標准輸入輸出流,將整個字符串一次輸入或輸出。
b. 使用字符串輸入輸出函數
字符串處理函數
C++標准庫提供了兼容C語言的字符串處理函數,其頭文件為string.h。字符串對象
字符串對象的操作
string對象允許使用運算符進行操作,實現類似C風格字符串的處理。
如復制(strcpy)、連接(strcat)、比較(strcmp)等。
字符串對象數組
可以定義字符串對象數組,即數組元素是字符串對象,定義形式與