當前位置:首頁 » 編程語言 » c語言數組的定義方法

c語言數組的定義方法

發布時間: 2023-06-13 08:23:52

A. c語言數組的定義及引用

C語言數組的定義及引用1

1.1 一維數組的定義、初始化和引用

1.一維數組的定義方式為:

類型說明符 數組名[常量表達式]

(1)數組名的命名方法與變數名相同,遵循標識符命名規則;

(2)數組是用方括弧括起來的常量表達式,不能用圓括弧;

(3)常量表達式表示數組元素的個數,即數組的長度,數組的下標從0開始,下標的最大值為:常量表達式-1;

(4)常量表達式中可以包括常量和符號常量,不能包括變數。

可以用賦值語句或輸入語句使數組中的元素得到值,但要佔用運行時間。可以使數組在運行之前初始化,即在編譯階段使之得到初值。

2.對數組初始化可以用以下方法實現:

(1)在定義數組時對數組元素賦以初值。如:

static int a[10]={0,1,2,3,4,5,6,7,8,9};

經過上面的定義和初始化後,a[0]=0,a[1]=1,…,a[9]=9。

(2)初始化時可以只對一部分元素賦初值。例如:

static int a[10]={0,1,2,3,4};

定義的數組有10個元素,但只對其中前5個元素賦了初值,後5個元素初值為0。

(3)如果想使一個數組的元素值全部為0,可以用下面的方法:

static int a[10]={0,0,0,0,0,0,0,0,0,0};

不能用:

static int a[10]={0*10};

如果對static型數組不賦初值,系統會對定義的所有數組元素自動賦以0值。

(4)在對全部數組元素賦初值時,可以不指定數組長度。

3.一維數組的引用方法是:

C語言規定不能一次引用整個數組,引用時只能逐個元素引用,數組元素的表示形式為:

數組名[下標]

下標可以是整型常量或整型表達式。如:

a[0]=a[5]+a[7]-a[2*3];

1.2 二維數組的定義、初始化和引用

1.二維數組定義的一般形式為

類型說明符數組名[常量表達式][常量表達式]

C語言採用上述定義方法,我們可以把二維數組看做是一種特殊的一維數組:它的元素又是一維數組。在C語言中,二維數組中元素的排列順序是:先按行存放,再按模寬列存放,即在內存中先順序存放第一行的元素,再存放第二行的元素。

2.二維數組的初始化:二維數組可以用下面的方法初始化:

(1)分行給二維數組賦初值。如:

static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

薯雹以上賦值把第一個花括弧內的數據賦給第一行元素,第二個花括弧內數據賦給第二元素…,即按行數碼帆賦值。

(2)可以將所有的數據寫在一個花括弧內,按數組排列的順序對各元素賦值。

(3)可以對數組的部分元素賦初值。如:

static int a[3][4]={{1},{5},{9}};

以上賦值的結果是:數組第一列的元素分別賦了初值1,5,9,其餘元素的值都是0。

(4)如果對二維數組的全部元素都賦初值,則定義數組時對第一維的長度可以不指定,但第二維的長度不能省。

3.二維數組的引用:二維數組的元素可以表示為:

數組[下標][下標]

在引用二維數組時,必須是單個元素,不能是整個數組名。下標可以是一個表達式,但不能是變數。如果下標是一個表達式,注意表達式的值不能超出數組定義的上、下限。

C語言數組的定義及引用2

指針數組說明的一般形式為:

類型說明符 *數組名[數組長度]

其中類型說明符為指針值所指向的變數的類型。例如:

int *pa[3]

表示pa是一個指針數組,它有三個數組元素,每個元素值都是一個指針,指向整型變數。

【例10-33】通常可用一個指針數組來指向一個二維數組。 指針數組中的每個元素被賦予二維數組每一行的首地址,因此也可理解為指向一個一維數組。

main(){

int a[3][3]={1,2,3,4,5,6,7,8,9};

int *pa[3]={a[0],a[1],a[2]};

int *p=a[0];

int i;

for(i=0;i<3;i++)

printf("%d,%d,%d ",a[i][2-i],*a[i],*(*(a+i)+i));

for(i=0;i<3;i++)

printf("%d,%d,%d ",*pa[i],p[i],*(p+i));

}

本常式序中,pa是一個指針數組,三個元素分別指向二維數組a的各行。然後用循環語句輸出指定的數組元素。其中*a[i]表示i行0列元素值;*(*(a+i)+i)表示i行i列的元素值;*pa[i]表示i行0列元素值;由於p與a[0]相同,故p[i]表示0行i列的值;*(p+i)表示0行i列的值。讀者可仔細領會元素值的各種不同的表示方法。

應該注意指針數組和二維數組指針變數的區別。這兩者雖然都可用來表示二維數組,但是其表示方法和意義是不同的。

二維數組指針變數是單個的變數,其一般形式中"(*指針變數名)"兩邊的括弧不可少。而指針數組類型表示的是多個指針(一組有序指針)在一般形式中"*指針數組名"兩邊不能有括弧。例如:

int (*p)[3];

表示一個指向二維數組的指針變數。該二維數組的列數為3或分解為一維數組的長度為3。

int *p[3]

表示p是一個指針數組,有三個下標變數p[0],p[1],p[2]均為指針變數。

指針數組也常用來表示一組字元串,這時指針數組的每個元素被賦予一個字元串的首地址。指向字元串的指針數組的初始化更為簡單。例如在例10.32中即採用指針數組來表示一組字元串。其初始化賦值為:

char *name[]={"Illagal day",

"Monday",

"Tuesday",

"Wednesday",

"Thursday",

"Friday",

"Saturday",

"Sunday"

};

完成這個初始化賦值之後,name[0]即指向字元串"Illegal day",name[1]指向"Monday"......。

指針數組也可以用作函數參數。

【例10-34】指針數組作指針型函數的參數。 在本例主函數中,定義了一個指針數組name,並對name 作了初始化賦值。其每個元素都指向一個字元串。然後又以name作為實參調用指針型函數day_name,在調用時把數組名name賦予形參變數name,輸入的整數i作為第二個實參賦予形參n。在day_ name函數中定義了兩個指針變數pp1和pp2,pp1被賦予name[0]的值(即*name),pp2被賦予name[n]的值即*(name+ n)。由條件表達式決定返回pp1或pp2指針給主函數中的指針變數ps。最後輸出i和ps的值。

main(){

static char *name[]={ "Illegal day",

"Monday",

"Tuesday",

"Wednesday",

"Thursday",

"Friday",

"Saturday",

"Sunday"

};

char *ps;

int i;

char *day_name(char *name[],int n);

printf("input Day No: ");

scanf("%d",&i);

if(i<0) exit(1);

ps=day_name(name,i);

printf("Day No:%2d-->%s ",i,ps);

}

char *day_name(char *name[],int n){

char *pp1,*pp2;

pp1=*name;

pp2=*(name+n);

return((n<1||n>7)? pp1:pp2);

}

【例10-35】輸入5個國名並按字母順序排列後輸出。現編程如下:

#include"string.h"

main(){

void sort(char *name[],int n);

void print(char *name[],int n);

static char *name[]={ "CHINA","AMERICA","AUSTRALIA","FRANCE","GERMAN"};

int n=5;

sort(name,n);

print(name,n);

}

void sort(char *name[],int n){

char *pt;

int i,j,k;

for(i=0;i<n-1;i++){

k=i;

for(j=i+1;j<n;j++)

if(strcmp(name[k],name[j])>0) k=j;

if(k!=i){

pt=name[i];

name[i]=name[k];

name[k]=pt;

}

}

}

void print(char *name[],int n){

int i;

for (i=0;i<n;i++) printf("%s ",name[i]);

}

說明:

1) 在以前的例子中採用了普通的排序方法,逐個比較之後交換字元串的位置。交換字元串的物理位置是通過字元串復制函數完成的。反復的交換將使程序執行的速度很慢,同時由於各字元串(國名)的長度不同,又增加了存儲管理的負擔。用指針數組能很好地解決這些問題。把所有的字元串存放在一個數組中,把這些字元數組的首地址放在一個指針數組中,當需要交換兩個字元串時,只須交換指針數組相應兩元素的內容(地址)即可,而不必交換字元串本身。

2) 本程序定義了兩個函數,一個名為sort完成排序,其形參為指針數組name,即為待排序的各字元串數組的指針。形參n為字元串的'個數。另一個函數名為print,用於排序後字元串的輸出,其形參與sort的形參相同。主函數main中,定義了指針數組name 並作了初始化賦值。然後分別調用sort函數和print函數完成排序和輸出。值得說明的是在sort函數中,對兩個字元串比較,採用了strcmp函數,strcmp函數允許參與比較的字元串以指針方式出現。name[k]和name[j]均為指針,因此是合法的。字元串比較後需要交換時,只交換指針數組元素的值,而不交換具體的字元串,這樣將大大減少時間的開銷,提高了運行效率。

C語言數組的定義及引用3

例子:輸出一個 4×4 的整數矩陣,代碼如下:

#include #include int main(){ int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1, c4=6666; int d1=34, d2=0, d3=23, d4=23006783; printf("%-9d %-9d %-9d %-9d ", a1, a2, a3, a4); printf("%-9d %-9d %-9d %-9d ", b1, b2, b3, b4); printf("%-9d %-9d %-9d %-9d ", c1, c2, c3, c4); printf("%-9d %-9d %-9d %-9d ", d1, d2, d3, d4); system("pause"); return 0;}

運行結果:

20 345 700 22

56720 9999 20098 2

233 205 1 6666

34 0 23 23006783

矩陣共有 16 個整數,我們為每個整數定義了一個變數,也就是 16 個變數。那麼,為了減少變數的數量,讓開發更有效率,能不能為多個數據定義一個變數呢?比如,把每一行的整數放在一個變數裡面,或者把 16 個整數全部都放在一個變數裡面。

我們知道,要想把數據放入內存,必須先要分配內存空間。放入4個整數,就得分配4個int類型的內存空間:

int a[4];

這樣,就在內存中分配了4個int類型的內存空間,共 4×4=16 個位元組,並為它們起了一個名字,叫a。

我們把這樣的一組數據的集合稱為數組(Array),它所包含的每一個數據叫做數組元素(Element),所包含的數據的個數稱為數組長度(Length),例如int a[4];就定義了一個長度為4的整型數組,名字是a。

數組中的每個元素都有一個序號,這個序號從0開始,而不是從我們熟悉的1開始,稱為下標(Index)。使用數組元素時,指明下標即可,形式為:

arrayName[index]

arrayName 為數組名稱,index 為下標。例如,a[0] 表示第0個元素,a[3] 表示第3個元素。

接下來我們就把第一行的4個整數放入數組:

a[0]=20;

a[1]=345;

a[2]=700;

a[3]=22;

這里的0、1、2、3就是數組下標,a[0]、a[1]、a[2]、a[3] 就是數組元素。

我們來總結一下數組的定義方式:

dataType arrayName[length];

dataType 為數據類型,arrayName 為數組名稱,length 為數組長度。例如:

float m[12];

char ch[9];

需要注意的是:

1) 數組中每個元素的數據類型必須相同,對於int a[4];,每個元素都必須為 int。

2) 數組長度 length 最好是整數或者常量表達式,例如 10、20*4 等,這樣在所有編譯器下都能運行通過;如果 length 中包含了變數,例如 n、4*m 等,在某些編譯器下就會報錯,我們將在《C語言變長數組》一節專門討論這點。

3) 訪問數組元素時,下標的取值范圍為 0 ≤ index < length,過大或過小都會越界,導致數組溢出,發生不可預測的情況,我們將在《C語言數組的靜態性、越界以及溢出》一節重點討論,請大家務必要引起注意。

4) 數組是一個整體,它的內存是連續的,下面是int a[4];的內存示意圖:

數組的初始化

上面的代碼是先定義數組再給數組賦值,我們也可以在定義數組的同時賦值:

int a[4] = {20, 345, 700, 22};

{ }中的值即為各元素的初值,各值之間用,間隔。

對數組賦初值需要注意以下幾點:

1) 可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:

int a[10]={12, 19, 22 , 993, 344};

表示只給 a[0]~a[4] 5個元素賦值,而後面5個元素自動賦0值。

當賦值的元素少於數組總體元素的時候,剩餘的元素自動初始化為 0:對於short、int、long,就是整數0;對於char,就是字元 '';對於float、double,就是小數0.0。

我們可以通過下面的形式將數組的所有元素初始化為 0:

int a[10] = {0};

char c[10] = {0};

float f[10] = {0};

由於剩餘的元素會自動初始化為0,所以只需要給第0個元素賦0值即可。

示例:輸出數組元素。

#include int main(){ int a[6] = {299, 34, 92, 100}; int b[6], i; //從控制台輸入數據為每個元素賦值 for(i=0; i<6; i++){ scanf("%d", &b[i]); } //輸出數組元素 for(i=0; i<6; i++){ printf("%d ", a[i]); } put' '); for(i=0; i<6; i++){ printf("%d ", b[i]); } put' '); return 0;}

運行結果:

90 100 33 22 568 10

299 34 92 100 0 0

90 100 33 22 568 10

2) 只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:

int a[10]={1, 1, 1, 1, 1, 1, 1, 1, 1, 1};

而不能寫為:

int a[10]=1;

3) 如給全部元素賦值,那麼在數組定義時可以不給出數組的長度。例如:

int a[]={1,2,3,4,5};

等價於

int a[5]={1,2,3,4,5};

最後,我們藉助數組來輸出一個 4×4 的矩陣:

#include #include int main(){ int a[4] = {20, 345, 700, 22}; int b[4] = {56720, 9999, 20098, 2}; int c[4] = {233, 205, 1, 6666}; int d[4] = {34, 0, 23, 23006783}; printf("%-9d %-9d %-9d %-9d ", a[0], a[1], a[2], a[3]); printf("%-9d %-9d %-9d %-9d ", b[0], b[1], b[2], b[3]); printf("%-9d %-9d %-9d %-9d ", c[0], c[1], c[2], c[3]); printf("%-9d %-9d %-9d %-9d ", d[0], d[1], d[2], d[3]); system("pause"); return 0;}

B. c定義數組的方法

C語言定義數組的方法如下。
int a[100];
char s[50];
double x[200];
這里定義了三個數組,分別判碰是整型數組,蔽者字元數掘並談組,和雙精度浮點型數組。

C. 數組定義方式c語言

數組的4種聲明方式:

1.先聲明再初始化

例如:

//1.聲明

int[] nums;

//初始化

nums = new int[5];

2.聲明並初始化

例如:

//2.聲明、初始化

int[] nums = new int[10];

3.創建數組同時賦值

例如:

//3.創建數組同時賦值

String[] names=new String[]{"大名","小米","夏雨荷"};

int[] ages=new int[]{21,22,21,56,13};

for (int i = 0;i < names.length;i++){

System.out.prinrln(names[i]);

}

for (int i = 0;i < ages.length;i++){

System.out.prinrln(ages[i]);

}

4.創建同時賦值,簡寫,不能寫成兩條語句

例如:

//4.創建同時賦值,簡寫,不能寫成兩條語句

String[] cities = {"上海","北京"};

(3)c語言數組的定義方法擴展閱讀:

數組(Array)是有序的元素序列。若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。用於區分數組的各個元素的數字編號稱為下標。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式。 這些有序排列的同類數據元素的集合稱為數組。

數組是用於儲存多個相同類型數據的集合。

在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。

D. c語言數組定義和賦值是什麼

c語言數組定義是:

char c[6]={'c', ' h ', 'i', 'n', 'a', '' };

整數數組定義賦值是:

int a[5]={1,2,3,4,5};

int a[5];

for(int i=0;i<5;i++)

a[i]=i;

定義float數組並賦值:

float b[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,0.0}

(4)c語言數組的定義方法擴展閱讀:

聲明固定大小的數組:

有三種方法聲明固定大小的數組,用哪一種方法取決於數組應有的有效范圍:

1、建立公用數組,在模塊的聲明段用 Public語句聲明數組。

2、建立模塊級數組,在模塊的聲明段用 Private語句聲明數組。

3、建立局部數組,在過程中用 Private語句聲明數組。

E. C語言中如何定義數組

數組定義的三種方式

1、第一種

int []a = newint[5];

a[0] = 10;

2、第二種

int []c = newint[]{1,2,3};

3、第三種

int []i ={1,2,3,4};

4、錯誤的寫法

int []i1 = [1,2,3,4];

System.out.println(Arrays.toString(c));

5、總之,具體的元素不能被【】包裹。【】包裹的應該是數組的數量。

(5)c語言數組的定義方法擴展閱讀

數組的注意事項:

1、 數組中每個元素的數據類型必須相同,對於inta[4];,每個元素都必須為 int。

2、 數組長度 length最好是整數或者常量表達式,

3、 訪問數組元素時,下標的取值范圍為 0 ≤ index < length,

參考資料

網路-數組



F. c語言怎麼定義數組

  • 首先雙擊啟動visual studio 2015,如果你使用的是其他版本的vs也是可以的。單擊「文件」-「新建」-「項目」,選擇visual c++,然後是「空項目」。

    12怎麼下載visual studio2015及安裝教程

G. C語言中如何定義數組

在C語言中使用數組必須先進行定義。一維數組的定義方式為:
類型說明符
數組名
[常量表達式];
其中,類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。例如:
對於數組類型說明應注意以下幾點:
1)
數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。
2)
數組名的書寫規則應符合標識符的書寫規定。
3)
數組名不能與其它變數名相同。例如
是錯誤的。
4)
方括弧中常量表達式表示數組元素的個數,如a[5]表示數組a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0],
a[1],
a[2],
a[3],
a[4]。
5)
不能在方括弧中用變數來表示元素的個數,但是可以是符號常數或常量表達式。例如:
是合法的。但是下述說明方式是錯誤的。
6)
允許在同一個類型說明中,說明多個數組和多個變數。例如:

H. C語言中一維數組正確的定義

符號常量是用一個標識符來表示一個常量,一維數組的定義方法為:類型說明符+數組名+[常量表達式];

類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括弧中的常量表達式表示數組元素的個數或者長度,可以是常量或符號常量,不能為變數。

例如:

1、int x[8]; 表示定義一個整型數組x,數組長度為8.

2、float a[8],b[10];表示定義一個實型數組b,數組長度為8,一個實型數組c,數組長度為10

3、 ch[15]; 表示定義一個字元數組ch,數組長度為15。

(8)c語言數組的定義方法擴展閱讀

在程序中可以使用下標變數,即說明這些變數的整體為數組,數組中的每個變數的數據類型是相同的。當數組中每個元素都只帶有一個下標時,稱這樣的數組為一維數組。

一維數組是由數字組成的以單純的排序結構排列的結構單一的數組。一維數組是計算機程序中最基本的數組。二維及多維數組可以看作是一維數組的多次疊加產生的。

數組是計算機編程中的重要概念,運用數組可以方便地處理大規模的數據。

I. c語言數組的定義

C語言支持一維數組和多維數組。如果一個數組的所有元素都不是數組,那麼該數組稱為一維數組。

在C語言中使用數組必須先進行定義,一維數組的定義方式為:類型說明符; 數組名 ;[常量表達式]。

其中,類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符,方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。例如:

int a[10]; /* 說明整型數組a,有10個元素 */

float b[10], c[20]; /* 說明實型數組b,有10個元素,實型數組c,有20個元素 */

char ch[20]; /* 說明字元數組ch,有20個元素 */

對於數組類型說明應注意以下幾點:

1、數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。

2、數組名的書寫規則應符合標識符的書寫規定。

3、數組名不能與其它變數名相同。例如:

int a;

float a[10];

是錯誤的。

4、方括弧中常量表達式表示數組元素的個數,如a[5]表示數組a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0], a[1], a[2], a[3], a[4]。

5、不能在方括弧中用變數來表示元素的個數,但是可以是符號常數或常量表達式。例如:

#define FD 5

// ...

int a[3+2],b[7+FD];

是合法的。但是下述說明方式是錯誤的。

int n=5;

int a[n];

6、允許在同一個類型說明中,說明多個數組和多個變數。例如:

int a,b,c,d,k1[10],k2[20];

(9)c語言數組的定義方法擴展閱讀:

C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。

C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。

其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

J. c語言數組的定義

一般渣叢謹有四種數組定義方式,以一維數組為例:

//定義指定維數的數組
intarr[10];
//定義不指定維數的數組,數組維數有初化列表元素個數決定。
intarr[]={1,2,4};
//定義指定維數的數組,初始化不完全時,系統將未初始化元素初始化為0
intarr[10]={1,2};
//動態分配一個數組。鄭碰下面分配了一個有10個元素如基的數組。
int*arr=(int*)malloc(10*sizeof(int));

熱點內容
查詢重復欄位的sql語句 發布:2025-02-13 03:12:42 瀏覽:322
8uftp上傳網站 發布:2025-02-13 03:01:57 瀏覽:242
電腦玩游戲如何配置電源 發布:2025-02-13 03:01:53 瀏覽:361
微信怎麼上傳頭像不了 發布:2025-02-13 02:57:04 瀏覽:118
c語言矩陣的轉置 發布:2025-02-13 02:38:43 瀏覽:624
rowphp 發布:2025-02-13 02:37:16 瀏覽:711
光遇安卓服周年傘在哪裡領取 發布:2025-02-13 02:22:18 瀏覽:674
寫mv腳本軟體 發布:2025-02-13 02:21:56 瀏覽:696
超內核源碼 發布:2025-02-13 02:12:54 瀏覽:444
趣粉腳本 發布:2025-02-13 02:11:23 瀏覽:952