C語言程式設計中陣列的定義,c語言陣列的定義

2022-12-05 12:25:12 字數 5308 閱讀 4221

1樓:匿名使用者

這種題目一般不希望設計記憶體管理。所以一般都是進可能給一個比較大的陣列。

例如a[10];

表示位數不會超過十,你輸入的時候需要個索引記錄a陣列有效的位數。

使用的時候,只使用有效位數。

肯定會有一段記憶體不用的。或多或少。這就是陣列儲存動態資料特點。

如果記憶體管理的話,你設計個增量比如5.

一旦索引告訴你10個位置用完了,地方不夠,你在動態申請

15個位置,把原來的複製到新的記憶體空間。

這就是陣列記憶體管理的方法,但是一般程式不要求這樣,因為你要作的是實現演算法思想,而不是去想這些記憶體管理的方面。

所以現在大多不需要程式設計師考慮記憶體管理。對實現演算法而講,注重的是實現的思想。

a[10]不行,你就設定你認為足夠長的。比如a[100]

通常這種情況,你要考慮你輸入的最大數字對應的位數,這種題目肯定是有上限的,不是任何數都可以。

我剛看你的程式了,10進位制變16進製程式有誤,你沒有考慮餘數10,11...

10對應a,11對應b..

這樣的話,應該用char陣列儲存。

下面是程式

你輸入15,會輸出f

100,會輸出64

#include

#include

void main()

i--;

printf("轉化為十六進位制的數為:");

for(;i>=0;i--)

printf("\n");}

2樓:塵遊凡客

用longint試試看...

c語言陣列的定義

3樓:打孃胎裡喜歡你

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

4樓:文化廚子

一般有四種陣列定義方式,以一維陣列為例:

//定義指定維數的陣列

int arr[10];

//定義不指定維數的陣列,陣列維數有初化列表元素個數決定。

int arr = ;

//定義指定維數的陣列,初始化不完全時,系統將未初始化元素初始化為0int arr[10] = ;

//動態分配一個陣列。下面分配了一個有10個元素的陣列。

int *arr  =(int *) malloc(10 * sizeof(int));

5樓:帆帆

元素型別名 陣列名[元素個數] 定義一個包含十個int型元素的陣列,陣列名為arr:int arr[10];//int為元素的型別,不是陣列的型別,陣列是int[10]型別的。

動態陣列與靜態陣列的對比對於靜態陣列,其建立非常方便,使用完也無需釋放,要引用也簡單,但是建立後無法改變其大小是其致命弱點!

對於動態陣列,其建立麻煩,使用完必須由程式設計師自己釋放,否則嚴重會引起記憶體洩露。但其使用非常靈活,能根據程式需要動態分配大小。

如何構建動態陣列遵循原則

申請的時候從外層往裡層,逐層申請;

釋放的時候從裡層往外層,逐層釋放。

構建所需指標對於構建一維動態陣列,需要一維指標;

對於二維,則需要一維,二維指標;

三維需要一,二,三維指標;

依此類推。

程式設計中的陣列是什麼意思?

6樓:血戰舞動丶稍

上面的大姐,說點實在的。陣列是記憶體中分配的一塊連續的空間,所以執行速度比較快。陣列中可以放各種型別的資料,當然也可以放入指標來指向你所想指向的任何東西。

還有就是陣列是在硬體基礎上就有的,對於字串其實就是基於陣列來做的,還有就是各個語言中對陣列操作有很多不一樣的地方,但是實質都是記憶體的問題。

7樓:天堂夢丶鯝韰

陣列是在程式設計中,為了處理方便, 把具有相同型別的若干變數按有序的形式組織起來的一種形式。這些按序排列的同類資料元素的集合稱為陣列。在c語言中, 陣列屬於構造資料型別。

一個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。

c語言中buffer到底是什麼意思?是陣列?緩衝區?為什麼一般c程式中都不定義他直接拿來用呢?

8樓:小夏在深圳

buffer是nodejs的重要資料型別,很有廣泛的應用。代表原始堆的分配額的資料型別。在nodejs中以類陣列的方式使用。

在buffer類的描述中,buffer被定義為用於特定基本型別資料的容器,且是特定基本型別的線性優先元素序列。

buffer提供了一個位元組緩衝區,它可以從channels中讀取資料到buffer,也可以將buffer中的資料寫入到channels,所以nio被定義為面向緩衝區程式設計,而io則是被定義為面向流的程式設計。

當一個快取中的資料被多次讀取,實際上就減少了該資料從慢速裝置中讀取的量,這就存在某種演算法去選擇什麼資料需要儲存在cache中,因為儘可能多的讓cache命中能提高效能。

擴充套件資料

buffer類的四個變數

1、capacity

容量,必須初始化的值(因為底層是陣列)

2、limit

上界,緩衝區的臨界區,即最多可讀到哪個位置

3、position

下標,當前讀取到的位置(例如當前讀出第5個元素,則讀完後,position為6)

4、mark

標記,備忘位置

9樓:

就是緩衝區,臨時存資料用的一塊記憶體

10樓:匿名使用者

buffer就是緩衝區的意思

為什麼一般c程式中都不定義他直接拿來用呢?

這個不可能,c語言有著嚴格的語法。不定義不能拿過來直接用。肯定是在別的地方定義的,如標頭檔案,或者是個全域性變數等。

一般在編譯器裡面,右鍵這個變數,選go to difination(就是轉到定義)就可以看到它在哪定義的了。

它一般用來定義陣列,因為它本身的意思就是「緩衝區」,在c語言裡,陣列就是個緩衝區,所以用常常用它。

用它沒有別的意思,就是方便記,你可以用shuzu mydata甚至你自己名字的拼音都行,主要是用它別人也很容易懂這個變數是搞啥的。

c語言中,定義陣列和引用陣列時,其陣列的下標的資料型別分別允許是什麼?

11樓:那年丶人已散盡

1、c89/c90標準:定義陣列時下標只允許使用整型、字元型常量,引用陣列時下標可以使用整型、字元型的常量或者變數

2、c99標準:定義陣列時下標可以使用整型、字元型的常量或變數,但變數必須已經賦值;引用陣列時下標可以使用整型、字元型的常量或者變數。以上所說的常量及變數均包含表示式。

擴充套件資料

1、陣列包含給定型別的一些物件,並將這些物件依次儲存在連續的記憶體空間中。每個獨立的物件被稱為陣列的元素(element)。元素的型別可以是任何物件型別,但函式型別或不完整型別不能作為陣列元素。

2、在陣列定義中,可以將元素數量指定為一個常量表示式,或者在特定情況下,指定為涉及變數的表示式。採用這兩種方式定義的陣列分別被稱為固定長度陣列和長度可變陣列。

3、固定長度陣列可以具有任意儲存類別:可以將它們定義在所有函式的外面或語句塊的裡面,並且可以使用或不使用儲存類修飾符 static。唯一的限制是陣列不能作為函式引數。

一個傳入函式的陣列引數需要被轉換為指向陣列第一個元素的指標。

c語言程式設計 二維陣列

12樓:程式設計師的每一天

c語言陣列之二維陣列

c語言中陣列的下標和定義陣列的長度有什麼區別呢?

13樓:匿名使用者

長度和下標不同的就是:長度是從第一位開始計算的就是1。長度為50的話直接n=50 下標:是從0開始的,如果50位的話n=49

14樓:匿名使用者

數值下標就是數值長度的值,陣列下標的作用就是可以輪番呼叫陣列內每一位元素,陣列下標從0開始有效

15樓:匿名使用者

嗯!樓上兩位說的都對,選我吧、

c語言編寫程式,實現以下功能:定義一個有10個元素的一維陣列,在程式執行期間,輸入陣列中的各個元素 50

16樓:匿名使用者

#include

void main(void)

;int i, j,k=0, m=0, n=0;

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

專scanf("%d", a+i);

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

n+=a[i];

}printf("最大值為

屬%d,最小值為:%d, 平均值為:%d\n", a[k], a[m], n/10);}

c語言陣列不懂,C語言,定義了個數的陣列元素個數問題,不懂得不要來亂答。

main 主函式 main 程式入口 main 1.mian 是c程式的入口一般標準寫法int main void void main 在c中如果省略括號裡的內容會是有程式決定是什麼內容 2.int i,a 10 定義了一個int型別變數叫i並未其分配了sizeof int 的記憶體,還有一個名字為...

C語言程式設計if語句,用C語言程式設計中if語句的格式是什麼?

printf t f n w h h 你程式中根本就沒有對變數t賦值,這句t f放在printf中,只是當作表面上的字串顯示而已。並不會對t賦值。scanf f f h,w t w h h printf t f n t include include int main 沒有給t值賦值,在printf...

C語言中區分陣列中的奇偶數,c語言程式設計求一個陣列中值是偶數的元素之和

好一個偷天換日 最開始 ji,ji1,ou,ou1 都指向同一地址在for 迴圈中 第一次 temp 1時 執行第二個if,於是 ji temp.第一個空間的值為1第二次 temp 2時 執行第一個if,此時的 ou指向的是第一個空間,此時 ou temp,就把先前的 ji空間個覆蓋了,於是第一空間...