c語言陣列初始化,C語言陣列的初始化表示方法

2021-03-04 06:28:34 字數 4007 閱讀 3977

1樓:匿名使用者

陣列的編號是從0開始的,所以當i=2時,score[2]實際是第三個數,前面還有score[0]和score[1]兩個數。

c語言陣列的初始化表示方法

2樓:匿名使用者

在c語言中,陣列的初始化有以下幾種方式:

1、定義的時候同時初始化:

int array[10] = ;

2、定義的時候不指定陣列大小,由初始化的陣列元素來確定大小:

int array = ;

3、先定義變數,然後初始化.注意點:定義變數時必須制定陣列的大小.此時只能對陣列變數成員元素逐一賦值,不能批量賦值.

//    int array; //錯誤用法

int array[12];

//    array = ; //錯誤用法.

array[0] = 1;

array[1] = 2;

array[2] = 3;

4、只有一種情況,在作為方法的形式引數時,可以不指定陣列的大小.這時傳入方法的是陣列的首位址,所以在方法內部是無法得到陣列長度的,陣列長度必須作為引數傳入函式.

void test()

;int length = sizeof(array)/sizeof(int);

int result = sumofarray(array, length);

printf("%d",result);

}int sumofarray(int array, int length)

return result;

}擴充套件資料

c語言陣列構建:

1、遵循原則

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

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

2、構建所需指標

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

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

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

依此類推。

參考資料

3樓:文望刃

不是inta   而是例如int a[10]這種。括號內一定要有個常量數字。

我們可以這樣定義

#define n 5

int a[n]

這表明了陣列名為a;陣列有5個元素;分別是a[0]到a[4];

對於陣列來說;陣列是變數的集合,因此陣列也具有與變數相同的資料型別和儲存型別。陣列的型別就是它所有的變數的型別。在定義陣列時,應在陣列名前對陣列的型別加以確定。

如上面的int a[10];則表明了陣列內元素均為整形。

所有當表示浮點型可以定義為例如float a[10]。 舉例如下:

陣列名是由使用者命名的c語言識別符號,要遵循識別符號命名規則。陣列名表示陣列儲存區域的首位址。陣列的首位址也就是第乙個元素的位址。陣列名是乙個位址常量,不能對它賦值。

陣列名後是由方括號括起來的常量表示式,不能使用其他括號

4樓:台式小情歌

c語言陣列的初始化表示方法有4種,分別是:

1、定義的同時進行初始

化,我們同樣用陣列的初始化引出結構體的初始化,我們知道陣列在定義的同時進行初始化的**如下:

int nums = ;

由此可推出結構體在定義的同時進行初始化的**如下:

struct person p = ;

2、先定義再進行初始化,這種初始化方法其實昨天的內容裡已經寫過了,**如下:

struct person p;

p.name = "lee";

p.age = 23;

p.height = 1.8;

我們知道資料定義好後就不能對其進行一次性初始化了,比如如下**是編譯不通過的。

int nums[3];

num =

3、第三種結構體比較例外,它可以這樣做,只不過需要對其進行一下強制型別轉換,**如下:

struct person p;

p = (struct person)

4、指定將資料賦值給指定的屬性,陣列中我們見過這種寫法,**如下:

int nums[3] = ;

我們可以為不同的索引指定值,並不需要一定要按順序來,所以陣列可以,結構體是否可以呢,當然,**如下:

struct person p = ;

5樓:匿名使用者

陣列的初始化:

int a=; 這種方式初始化,大括號裡寫了幾個元素那麼陣列裡就有幾個元素,相當於int a[3]=int a[3]=; 這樣是將a中的所有元素初始化為0;

int a[4]=; 這樣是將a[0]初始化為1,a[1]初始化為2,其他的初始化為0

6樓:文化廚子

一般對陣列初始化可以用以下方法實現:

(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)在對全部陣列元素賦初值時,可以不指定陣列長度。

7樓:啦啦啦啦崔小淨

#include

#include

void main()

; //所有初始化為0

int b[5]=; //d[0]=1,d[1]=2,d[2]=3...

int c[10][20]=; //所有初始化為0

int d[3][2]=,,}; //c[0][0]=1,c[0][1]=2,c[1][0]=3,c[1][1]=4...

int e[9][10];

memset(e,0,sizeof(e)); //所有初始化為0}

8樓:愛惹緋聞的寡夫

初始化時中括號裡面可以不寫,會根據後面初始化分配,但是你不是初始化,只是單純的定義就乙個的寫裡面的個數,到時好分配空間給它

c語言中一維陣列的初始化是什麼意思,有什麼作用??

9樓:修者世界

一維陣列初始化就是給一維陣列賦初值,作用就是申明的這個一維陣列有了乙個確定的值,從而可以得到具體應用。乙個陣列申明後,如果沒有賦值,那麼只是分配了記憶體空間,沒有具體的值,也可以說是空,其組成是「\0」也就是null,無法在實際中使用。

例:char str[20];

str="this is a array";

10樓:匿名使用者

為陣列的元素賦初始值,和其他初始化一樣,形式如下:

int arr[4] = ; 大括號中值的個數可以小於陣列元素個數,此時,未被初始化的元素被賦值為0;不能多於陣列元素個數,否則報錯。

c怎麼把陣列初始化為0(陣列很大)?

11樓:湛藍水晶

如果是初始化抄,只要定襲義第乙個元素為0,後面就全為0了,如int a[size] = ;

如果是在定義以後想全部賦為0,用memset()函式是比較快的。

如:int a[size];

memset(a, 0, sizeof(int)*size);

12樓:匿名使用者

int a[size];

memset(a, 0, sizeof(a));

c關於字元陣列的初始化和賦值問題

只有在定義的同時這樣 a 20 what for 賦值才行,其他不行,這是c語言規定的 要先定義然後再在其他地方賦值的話,就只能乙個乙個元素單獨賦值,不過要是想達到同樣的效果 類似a 20 what for 對於字串陣列,可以用庫函式strcpy 函式賦值,其他的話,你可以自己寫函式給他們賦初值!初...

簡單的C語言陣列程式設計,c語言陣列的程式設計

一般有四種陣列定義方式,以一維陣列為例 定義指定維數的陣列int arr 10 定義不指定維數的陣列,陣列維數有初化列表元素個數決定。int arr 定義指定維數的陣列,初始化不完全時,系統將未初始化元素初始化為0int arr 10 動態分配乙個陣列。陣列例項 include int main v...

C中陣列疑惑,C語言陣列問題

陣列有分動態陣列和靜態陣列 動態陣列,是指數組的元素個數,不是宣告的時候就定下來,比如int a new int i 這裡的i也是變數,有可能為1,也可能為10。靜態陣列,是指宣告的時候,元素的個數就確定下來了,比如int a 10 c語言中都是靜態陣列,c 中才有動態陣列的概念。樓主所說的並不是我...