定義一維陣列的一般格式為:
型別識別符號 陣列名[常量表示式];
例如:int a[10];
它表示陣列名為a,此陣列為整型,有10個元素。
獲得陣列的長度:sizeof(arry)/sizeof(arry[int]),int可以為任意整數
關於一維陣列的幾點說明:
1) 陣列名定名規則和變數名相同,遵循識別符號定名規則。
2) 用方括號括起來的常量表示式表示下標值,如下面的寫法是合法的:
int a[10];
int a[2*5];
int a[n*2]; //假設前面已定義了n為常變數
3) 常量表示式的值表示元素的個數,即陣列長度。例如,在「int a[10];」中,10表示a陣列有10個元素,下標從0開始,這10個元素是: a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7], a[8],a[9]。注意最後乙個元素是a[9]而不是a[10]。
4) 常量表示式中可以包括常量、常變數和符號常量,但不能包含變數。也就是說,c++不允許對陣列的大小作動態定義,即陣列的大小不依賴於程式執行過程中變數的值。例如,下面這樣定義陣列是不行的:
int n;
cin>>n; //輸入a陣列的長度
int a[n]; //企圖根據n的值決定陣列的長度
如果把第1,2行改為下面一行就合法了:
const int n=5;
陣列必須先定義,然後使用。只能逐個引用陣列元素的值而不能一次引用整個陣列中的全部元素的值。
陣列元素的表示形式為:
陣列名[下標]
下標可以是整型常量或整型表示式。例如:
a[0]= a[5]+ a[7]- a[2*3]
【例5.1】陣列元素的引用。#include using namespace std;
int main( )
;2) 可以只給一部分元素賦值。例如:
int a[10]=;
3) 如果想使乙個陣列中全部元素值為1,可以寫成:
int a[10]=;
不能寫成
int a[10]=;
不能給陣列整體賦初值。
4) 在對全部陣列元素賦初值時,可以不指定陣列長度。例如:
int a[5]=;
可以寫成
int a=;
【例5.2】用陣列來處理求fibonacci數列問題。
可以用20個元素代表數列中的20個數,從第3個數開始,可以直接用表示式f[i]=f[i-2]+f[i-1]求出各數。程式如下:#include #include using namespace std;
int main( )
; //f[0]=1,f[1]=1
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; //在i的值為2時,f[2]=f[0]+f[1],依此類推
for(i=0;i<20;i++) //此迴圈的作用是輸出20個數
//交換兩個數的位置, 使小數上浮
cout<<"the sorted numbers :"《運**況如下:
input 10 numbers:
3 5 9 11 33 6 -9 -76 100 123↙
the sorted numbers:
-76 -9 3 5 6 9 11 33 100 123
C 開發之 一維陣列 5 2
一位陣列在陣列中最常見,即將一組值存放到乙個陣列中,並為其定義乙個名稱,通過陣列中元素的位置類訪問值 定義陣列 資料型別 陣列名 初始化陣列中的元素 資料型別 陣列名 new 資料型別 長度 資料型別 陣列名 資料型別 陣列名 new 資料型別 長度 定義 int 型別的陣列 int a 輸岀陣列中...
52 c 中的抽象類和介面
c 中並不支援這兩個概念,但是卻有對應的東西。物件導向中抽象概念 在進行物件導向分析時,會發現一些抽象的概念。shape是現實世界中各種圖形的抽象概念,因此,程式中必須能夠反映抽象的圖形,程式中通過抽象類表示圖形的概念,抽象類不能建立物件,只能用於繼承。c 語言中沒有抽象類的概念,c 中通過純虛函式...
52 C 中的抽象類和介面
1 什麼是抽象類 class shape shape 只是乙個概念上的型別,沒有具體物件 2 抽象類與純虛函式 純虛函式的語法規則 class shape 0 用於告訴編譯器當前是宣告純虛函式,因此不需要定義函式體 這個程式讓我們了解了抽象類的概念,以及用抽象類來實現多型。本來我們不能用shape這...