當前位置:首頁 » 編程語言 » C語言中數組說明
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

C語言中數組說明

發布時間: 2023-04-06 00:24:34

c語言中數組的定義和使用是什麼

動態數組是指在聲明時沒有確定數組大小的數組,即忽略方括弧中的下標。使用時,可隨時用ReDim語句(C語言中用malloc語句)重新指出數組的大小。

動態數組,是相對於靜態數組而言。靜態數組的長度是預先定義好的,在整個程序中,一旦給定大小後就無法改變。

而動態數組則不然,它可以隨程序需要而重新指定大小。動態數組的內存空間是從堆(heap)上分配(即動態分配)的。是通過執行代碼而為其分配存儲空間。當程序執行到這些語句時,才為其分配。程序員自己負責釋放內存。使用動態數組的優點是可以根據用戶需要,有效利用存儲空間。



動態數組與靜態數組的對比:

對於靜態數組,其創建非常方便,使用完也無需釋放,要引用也簡單,但是創建後無法改變其大小是其致命弱點。

對於動態數組,其創建麻煩,使用完必須由程序員自己釋放,否則嚴重會引起內存泄露。但其使用非常靈活,能根據程序需要動態分配大小。

Ⅱ c語言中什麼是數組

數組是計算機編程語言上,對於“Array”的中文稱呼。將相同數據類型的元素按一定順序排列的集合,把有限個類型相同的變數用一個名字命名,然後用編號區分他們的變數的集合,這個名字成為數組名,編號成為下標。組成數組的各個變數成為數組的分量,也稱為數組的元素,有時也稱為下標變數。數組是在程序設計中,為了處理方便, 把具有相同類型的若干變數按有序的形式組織起來的一種形式。這些按序排列的同類數據元素的集合稱為數組。


c語言數組

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

關於可變長數組(VLA)的問題:原來的C標准中是不允許可變長數組出現的,但是在C++中,加入了對VLA的支持,也有不少編譯器已經支持這個了,而且好像沒有太多的人用這個可變長數組。

如果有過用其它語言編程的經歷,那麼想必會熟悉數組的概念。由於有了數組,可以用相同名字引用一系列變數,並用數字(索引)來識別它們。在許多場合,使用數組可以縮短和簡化程序,因為可以利用索引值設計一個循環,高效處理多種情況。數組有上界和下界,數組的元素在上下界內是連續的。因為 Visual Basic對每一個索引值都分配空間,所以不要不切實際聲明一個太大的數組。

此處數組是程序中聲明的變數數組。它們不同於控制項數組,控制項數組是在設計時通過設置控制項的 Index 屬性規定的。變數數組總是連續的;與控制項數組不同的是,不能從一個數組的中部載入或卸載數組元素。

一個數組中的所有元素具有相同的數據類型(在C、C++、Java、pascal中都這樣。但也並非所有涉及數組的地方都這樣,比如在Visual Foxpro中的數組就並沒這樣的要求)。當然,當數據類型為 Variant 時,各個元素能夠包含不同種類的數據(對象、字元串、數值等等)。可以聲明任何基本數據類型的數組,包括用戶自定義類型和對象變數。

如果要用戶輸入的是一個數組,一般是用一個循環,但是在輸入前也需要固定數組的大小。

compact跟變長數組沒有太大的關系,也應該用不到變長數組。因為一般的傳數組到函數中就是傳數組的地址和元素的個數的,那隻是一個提示,不是要求。

原型可以這樣寫(假設數組的元素是type):

int compact(type *Array,int Count)

數組類型說明 在C語言中使用數組必須先進行類型說明。

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

Ⅲ 在C語言中,數組的聲明是怎麼回事

聲明數組的語法為在數組名後加上用方括弧括改祥歷起來宴伍的核搜維數說明。本接僅介紹一維數組。下面是一個整型數組的例子:
int array[10];
這條語句定義了一個具有10個整型元素的名為array的數組。這些整數在內存中是連續存儲的。數組的大小等於每個元素的大小乘上數組元素的個數。方括弧中的維數表達式可以包含運算符,但其計算結果必須是一個長整型值。這個數組是一維的。

Ⅳ c語言中的數組是什麼意思

在程序中經常要根據用戶輸入新建數組。但是c語言中不允許非常量成為新建數組時表示大小的下標:

for example:

int line;

int col;

scanf("%d,%d",&line,&col);

int p[line][col];//這樣是不允許的!!!!!

正確的做法是:

p = (int *)malloc(sizeof(int)*line*col);

訪問或者寫入數據時:

*(p + line*i + j);

p +line*i + j;

(4)C語言中數組說明擴展閱讀

數組的聲明並不是聲明一個個單獨的變數,比如 number0、number1、...、number99,而是聲明一個數組變數,比如 numbers,然後使用 numbers[0]、numbers[1]、...、numbers[99] 來代表一個個單獨的變數。數組中的特定元素可以通過索引訪問。

所有的數組都是由連續的內存位置組成。最低的地址對應第一個元素,最高的地址對應最後一個元素。

在 C 中要聲明一個數組,需要指定元素的類型和元素的數量,如下所示:

type arrayName [ arraySize ];

這叫做一維數組。arraySize必須是一個大於零的整數常量,type可以是任意有效的 C 數據類型。例如,要聲明一個類型為 double 的包含 10 個元素的數組balance,聲明語句如下:

double balance[10];

現在balance是一個可用的數組,可以容納 10 個類型為 double 的數字。

Ⅳ C語言中的數組是什麼意思

把具有相同數據類型的若干變數按有序的形式組織起來,
以便於程序處理,這些數據元素的集合就是數組,按照數組
元素的類型不同,可分為:數值數組、字元數組、指針數組
結構數組等各種類別。
數組說明的一般形式為:
類型說明符 數組名[常量表達式],......;
其中類型說明符可以是任一種基本數據類型或構造數據類型
數組名是定義的數組標識符。常量表達式表示數據元素的個
數,也就是數組的長度。
對數組類型的說明應注意:
1)數組的類型實際上是數組元素的取值類型。
2)數組名的書寫應符合標識符的書寫規范。
3)數組名不能與其他變數名相同。
4)常量表達式表示數組元素的個數,但是其下標從0開始計算
5)不能在方括弧中用變數來表示元素的個數,但是可以用符號
常數或常量表達式。
6)允許在同一個類型說明中,說明多個數組和多個變數。
數組元素的表示方法
一般比較簡單就是數組名[下標]來引用,先定義後用,如果
是小數的話,直接自動取整。
數組賦值分為:初始化賦值和動態賦值
初始化賦值一般形式為:
static 類型說明符 數組名[常量表達式]={值,值......};
static表示靜態存儲類型,c語言規定只有靜態存儲數組和外部數組
才可做初始化賦值。
c語言對數組的初始化賦值還有幾個規定:
1)可以只給部分元素賦值。
2)只能給元素逐個賦值,不能給數組整體賦值。
3)如不給可初始化的數組賦初值,在在數組說明中,可以不給出數組
元素的個數。
下面看一下多維數組
主要看一下二維數組,其他的就可以用二維數組類推得到
二維數組的類型說明的一般形式是:
類型說明符 數組名[常量表達式1][常量表達式2]...;
在c語言中二維數組是按行排列的
二維數組的表示方法:
數組名[下標][下標]
二維數組的初始化
二維數組初始化也是在類型說明時給各下標變數賦以初值。 二維數組可
按行分段賦值,也可按行連續賦值。
二維數組的初始化還應該注意:
1)可以只對部分元素賦初值,未賦初值的元素自動取為0。
2)如對全部元素賦初值,則第一維的長度可以不給出。
字元數組:
用來存放字元變數的數組稱為字元數組。
C語言允許用字元串的方式對數組作初始化賦值。例如:
static char c[]={'c', ' ','p','r','o','g','r','a','m'}; 可寫為:
static char c[]={"C program"}; 或去掉{}寫為:
sratic char c[]="C program";
用字元串方式賦值比用字元逐個賦值要多佔一個位元組, 用於存放字元串結
束標志'\0'。上面的數組c在內存中的實際存放情況為: C program\0`\0'是
由C編譯系統自動加上的。由於採用了`\0'標志,所以在用字元串賦初值時一
般無須指定數組的長度, 而由系統自行處理。在採用字元串方式後,字元數
組的輸入輸出將變得簡單方便。 除了上述用字元串賦初值的辦法外,還可用
printf函數和scanf函數一次性輸出輸入一個字元數組中的字元串, 而不必
使用循環語句逐個地輸入輸出每個字元。
void main()
{
static char c[]="BASIC\ndBASE";
printf("%s\n",c);
} printf("%s\n",c);
注意在本例的printf函數中,使用的格式字元串為"%s", 表示輸出的是一
個字元串。而在輸出表列中給出數組名則可。 不能寫為: printf("%s",c[]);
void main()
{
char st[15];
printf("input string:\n");
scanf("%s",st);
printf("%s\n",st);
} char st[15];
本例中由於定義數組長度為15, 因此輸入的字元串長度必須小於15,
以留出一個位元組用於存放字元串結束標志`\0`。 應該說明的是,對一個字
符數組,如果不作初始化賦值,則必須說明數組長度。還應該特別注意的是,
當用scanf函數輸入字元串時,字元串中不能含有空格,否則將以空格作為串
的結束符。例如運行例4.8,當輸入的字元串中含有空格時,運行情況為:
input string:this is a book this 從輸出結果可以看出空格以後的字元
都未能輸出。 為了避免這種情況, 可多設幾個字元數組分段存放含空格的
串。程序可改寫如下:
Lesson
void main()
{
char st1[6],st2[6],st3[6],st4[6];
printf("input string:\n");
scanf("%s%s%s%s",st1,st2,st3,st4);
printf("%s %s %s %s\n",st1,st2,st3,st4);
}
本程序分別設了四個數組, 輸入的一行字元的空格分段分別裝入四個數組。
然後分別輸出這四個數組中的字元串。在前面介紹過,scanf的各輸入項必須以
地址方式出現,如 &a,&b等。但在例4.8中卻是以數組名方式出現的,這是為
什麼呢?這是由於在C語言中規定,數組名就代表了該數組的首地址。 整個
數組是以首地址開頭的一塊連續的內存單元。如有字元數組char c[10],在
內存可表示如圖4.2。設數組c的首地址為2000,也就是說c[0]單元地址為2000。
則數組名c就代表這個首地址。因此在c前面不能再加地址運算符&。如寫作
scanf("%s",&c);則是錯誤的。 在執行函數printf("%s",c) 時,按數組名c
找到首地址,然後逐個輸出數組中各個字元直到遇到字元串終止標志'\0'為止。
字元串常用函數:
用於輸入輸出的字元串函數在使用前應包含頭文件"stdio.h",使用其他字元串
函數則應包含頭文件"string.h".下面介紹幾個常用的字元串函數:
1)字元串輸出函數 puts 格式:puts(字元數組名) 功能:把字元數組中的字元
串輸出到顯示器。
#include"stdio.h"
main()
{
static char c[]="BASIC\ndBASE";
puts(c);
}
2)字元串輸入函數gets 格式:gets(字元數組名) 功能:從標准輸入設備上
輸入一個字元串。
#include"stdio.h"
main()
{
char st[15];
printf("input string:\n");
gets;
puts;
}
tips:gets函數並不以空格作為字元串輸入結束的標志,而只是以回車作為輸入
結束,這是與scanf不同的部分
3)字元串連接函數strcat 格式:strcat(字元數組名1,字元數組名2)
功能:把字元數組2中的字元串連接到字元數組1中字元串後面,並刪去字元串
1後的串標志"\0",本函數返回字元數組1的首地址。
#include"string.h"
main()
{
static char st1[30]="My name is ";
int st2[10];
printf("input your name:\n");
gets(st2);
strcat(st1,st2);
puts(st1);
}
4)字元串拷貝函數strcpy 格式:strcpy(字元數組名1,字元數組名2)
功能:把字元數組2中的字元串拷貝到字元數組1中,串結束標志 "\0"也一同
拷貝,字元數組2也可以是一個字元常量,就相當於把一個字元串賦予一個字元數組
#include"string.h"
main()
{
static char st1[15],st2[]="C Language";
strcpy(st1,st2);
puts(st1);
printf("\n");
}
5)字元串比較函數strcmp格式:strcmp(字元數組1,字元數組2) 功能:
按照ASCII碼順序比較兩個數組中的字元串,並有函數返回值返回比較結果
#include"string.h"
main()
{
int k;
static char st1[15],st2[]="C Language";
printf("input a string:\n");
gets(st1);
k=strcmp(st1,st2);
if(k==0) printf("st1=st2\n");
if(k>0) printf("st1>st2\n");
if(k<0) printf("st1<st2\n");
}
6)測字元串長度的函數strlen 格式:strlen(字元數組名) 功能:
測字元串的實際長度(不含字元串結束標志"\0")並作為函數返回值
#include"string.h"
main()
{
int k;
static char st[]="C Language";
k=strlen;
printf("The lenth of the string is %d\n",k);
}
程序舉例:
例一:
main()
{
int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i<10;i++)
{
p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]) {p=j;q=a[j];}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d",a[i]);
}
printf("\ninput number:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n>a[i])
{for(s=9;s<=i;s--) a[s+1]=a[s];<br>break;}
a[i]=n;
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
例二:
main()
{
static int a[][4]={3,16,87,65,4,32,11,108,10,25,12,27};
int b[3],i,j,l;
for(i=0;i<=2;i++)
{
l=a[i][0];
for(j=1;j<=3;j++)
if(a[i][j]>l) l=a[i][j];
b[i]=l;
}
printf("\narray a:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=3;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\narray b:\n");
for(i=0;i<3;i++)
printf("%5d",b[i]);
printf("\n");
}
例三:
void main()
{
char st[20],cs[5][20];
int i,j,p;
printf("input country's name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=0;i<5;i++)
{
p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
if(p!=i)
{strcpy(st,cs[i]);<br>strcpy(cs[i],cs[p]);<br>strcpy(cs[p],st);<br>}
puts(cs[i]);
printf("\n");

Ⅵ c語言數組規則

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];

Ⅶ 在C語言中數組名是一個什麼的常量

數組名是代表該數組的首地址且符合標識鋒州符書寫規定的變數標識符。

整個數組是以首地址開頭的一塊連續的內存單元。如有字元正基祥數組char c[10],設數組c的首地址為2000,也就是說c[0]單元地址為2000。則數組名c就代表這個首地址。

因此,在使用scanf()函數的時候,變數c前是不能添加地址運算符&的,scanf("%s",&c);則是錯誤的的寫法。

(7)C語言中數組說明擴展閱讀:

數組名的作用:

1、聲明數組變數的作用:

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

2、應用數組元素:

數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。

Ⅷ C語言中的數組什麼意思

所謂數組,是有序的元素序列。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類數據元素的集合稱為數組。

比如油煙機的風扇轉速會和工作的模式之間有一定的關系,那麼我們就可以把它的工作模式和一維數組的下標對應起來,我們將具體的轉速放在數組中,這樣的話就非常方便我們在日後查詢。

再比如說家中的冷暖燈光控制這方面,色溫燈里會有兩個燈珠,分別對應的是冷光和暖光,選擇不同的模式燈光的顏色就不同,我們就可以將這兩種燈光的亮度pwm值事先放在二維數組中,以便調用調光。

在程序中合理地使用數組,會使程序的結構比較整齊,而且可以把較為復雜的運算,轉化成簡單的數組來表示。

(8)C語言中數組說明擴展閱讀:

一、使用規則:

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

2、只能給元素逐個賦值,不能給數組整體賦值。

(請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。)

3、若不給可初始化的數組賦初值,則全部元素均為0值。

4、假如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。

動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。

二、表示方法:

數組元素是組成數組的基本單元。

數組元素也是一種變數, 其標識方法為數組名後跟一個下標。下標表示了元素在數組中的順序號。數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。

如為小數時,C編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變數。必須先定義數組, 才能使用下標變數。在C語言中只能逐個地使用下標變數, 而不能一次引用整個數組。

Ⅸ 在C語言程序中,數組名代表的是 ____ 。

選A,數組的首地址。

在C語言程序中,數組名表示的是「數組首個元素的地址,而首個元素是int類型」。

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

數組是一種特殊的對象類型,其中可以保存一個有序的元素集合。數組元素的類型 稱為該數組的基類型(base type);其中保存的元素個數是一個固定的屬性,稱為其長度(length)。

數組的特點:

1、數組是相同數據類型的元素的集合。

2、數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起。

(9)C語言中數組說明擴展閱讀逗祥:

舉拆昌例說明旅指扒

1、int a[10]; 說明整型數組a,有10個元素。若要表示第10個元素,則使用a[9]。第一個則是a[0]。

2、float b[10],c[20]; 說明實型數組b,有10個元素,實型數組c,有20個元素。

3、char ch[20]; 說明字元數組ch,有20個元素。



Ⅹ 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、總之,具體的元素不能被【】包裹。【】包裹的應該是數組的數量。

(10)C語言中數組說明擴展閱讀

數組的注意事項:

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

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

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

參考資料

網路-數組