-
一維數組
鎖定
當數組中每個元素都只帶有一個下標時,稱這樣的數組為一維數組。
- 中文名
- 一維數組
- 外文名
- linear array
- 定 義
- 由數字組成的以單純的排序結構排列的結構單一的數組
一維數組定義
數組的定義格式如下:
類型標識符 數組名[常量表達式]
説明:
①數組名的命名規則與變量名的命名規則一致
②常量表達式表示數組元素的個數。可以是常量或符號常量,不能為變量。
int a[10]; //數組a的定義是合法的 int a[n]; //若n為變量,則數組a的定義是非法的
一維數組性質
一維數組引用
通過給出的數組名稱和這個元素在數組中的位置編號(即下標),程序可以引用數組中的任意一個元素。
在C++中,一維數組的引用格式為:數組名[下標]
例如: int a[10];
其中,a是一維數組的數組名,該數組有10個元素,依次表示為a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]。需要注意的是,a[10]不屬於這一個數組的空間範圍中。當在説明部分定義了一個數組變量後,編譯程序會在內存空間中開闢一串連續的存儲單元。對於數組而言,程序的執行部分使用的是數組變量而不是數組類型。需要注意的是:在引用時,下標可以是整型變量或整型表達式。如果使用表達式,會先計算表達式以確定下標。程序只能逐個應用數組中的元素而不能一次引用整個數組。如:
[2]
int a[100],b[100]; a=b; //這是非法的
數組名不能與其他變量名相同,如:
int a; float a[10]; //這是非法的
不能在方括號中用變量來表示元素的個數,如:
int n=5; int a[n]; //這是非法的
但可以是符號常數或常量表達式
int a[3+2]; //這是合法的
一維數組初始化
數組的初始化可以在定義時一併完成。格式如下:
int a[5]={1,2,3,4,5};
c++語言對數組的初始化賦值還有以下幾點規定:
(1)可以只給部分元素賦初值
當{}中值的個數小於元素的個數時,只給前面部分元素賦值,例如:
int a[10]={0,1,2,3,4};
表示只給a[0]~a[4]五個元素賦值,後面的元素自動賦0。
(2)只能給元素逐個賦值,不能給數組整體賦值。
例如給十個元素全部賦1值,只能寫成
int a[10]={1,1,1,1,1,1,1,1,1,1};
而不能寫成
int a[10]=1;
(3)如給全部元素賦值,則在數組中説明,可以不給出數組元素的個數,例如:
int a[5]={1,2,3,4,5}
可寫成
int a[]={1,2,3,4,5}
一維數組應用
一維數組成員操作函數
memcpy(b,a,sizeof(int)*k):memcpy函數用於將數組a中複製k個元素至數組b中,定義式中的int應根據需要選擇合適的數據類型。特別地,當要把全部數據複製到另一數組中時,可以簡寫為:memcpy(b,a,sizeof(a))。
for(int i=1;i<=n;i++)a[i]=0;
一維數組實例
#include <iostream> using namespace std; int main() { int i,a[10]; for(i=0;i<=9;i++) { a[i]=i; } for(i=9;i>=0;i--) { cout<<a[i]; } return 0; }
#include <cstdio> int a[100]; int main(){ int a,n = 0; while(scanf("d",&x)==1) a[n++]=x; //相當於a[n]=x;n++; for(int i = n-1;i>=1;--i) printf("%d ",a[i]; printf("%d\n",a[0]; return 0; }