C語言陣列

2021-08-05 20:59:56 字數 1712 閱讀 1231

1.為什麼要學習陣列?

總結:有時候需要定義很多變數,如果用一般的定義方式顯得麻煩,並且容易出錯,所以就引用陣列的這個概念。

2、怎麼定義陣列?

比如:int nun[4];//資料型別 陣列名[常量];  常量:5 3+2;

int add(int n)

3、怎麼使用陣列?

定義的是時候呢,你可以整體定義;但是使用的使用必須乙個乙個使用:

通過下標,int num[4];

num[0]:使用陣列中第乙個元素;

num[1]:使用陣列中第二個元素;

以此類推;但是最後乙個陣列是 int a[n];===>a[n - 1];

非要使用:a[n];//大家不要越界使用,學習語言語言的時候根據規定來,語言相當於乙個使用使用說明書,你是學習它的,不是改變他的;

4、怎麼初始化陣列?

分為兩類:

1、完全初始化:int a[4] = ;

2、不完全初始化:int a[3] = ;

a[0] = 33,a[1] = 0; a[2] = 0;

對a[0],a[1],a[2]值的分析:

正常分析的話:三種情況:①都是33;②第乙個是33,後面的都是0;③11 11 11;

學習方法:學習 = 基礎知識 + 合理推斷;

沒有基礎知識,再強的合理推斷也沒用;

但是即使你有了基礎知識作為鋪墊,沒有合理推斷能力,那也是死記硬背!

小結:基礎知識和合理推斷兩者缺一不可。

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

int a[3] = ;//跟上面是等價的;

int a[3];//沒有初始化的,隨機值

5.二維陣列

int a[n][m];//n,m 是常量。

int a[3][4];//二維陣列由3個一維陣列組成,然後每個一維陣列裡面包含了4個元素。

a[0][0]a[0][1]a[0][2]a[0][3]

a[1][0]a[1][1]a[1][2]a[1][3]

a[2][0]a[2][1]a[2][2]a[2][3]

二維陣列在記憶體中的儲存方式:按行存放,先放第一行,再放第二行。。。。。依次類推。

6.字元陣列

char ch[4] = ;

char ch = ;

char ch[11] = ;

字串的結尾標誌是'\0';

遍歷字串的時候,遍歷是'\0'預設為字串結束了,然後'\0'前面的字元就是字串的內容;

輸入字串的時候:hello  系統會自動在o後面加上乙個'\0'表示字串結束;

『\0』佔儲存空間的;

sizeof(ch);       //11,因為'\0'佔儲存空間的;

strlen(ch);//10,因為'\0'表示字串結束,字串的真正內容是'\0'前面的字元,當然不算'\0';

『\0』在ascii表中為0,什麼都不顯示。

int a[5] = ;

sizeof(a); //定義了整型陣列,然後陣列元素是5個,每乙個整型數所佔位元組是4個位元組,那麼5個:4*5 = 20。

sizeof(a)/sizeof(a[0]);       //實現的功能是求出陣列個數。

c語言陣列

陣列 構造資料型別之一 陣列是具有一定順序關係的若干個變數的集合,組成陣列的各個變數稱為陣列的元素。陣列中各元素的資料型別要求相同,用陣列名和下標確定。陣列可以是一維的,也可以是多維的。在科學計算中,許多重要的應用都是基於陣列的。所謂一維陣列是指只有乙個下標的陣列。它在計算機的記憶體中是連續儲存的。...

C語言陣列

在變數作函式引數時,所進行的值傳送是單向的。即只能從實參傳向形參,不能從形參傳回實參。形參的初值和實參相同,而形參的值發生改變後,實參並不變化,兩者的終值是不同的。而當用陣列名作函式引數時,情況則不同。由於實際上形參和實參為同一陣列,因此當形引數組發生變化時,實參陣列也隨之變化。當然這種情況不能理解...

C語言 陣列

陣列 void test1 for int i 0 i 5 i for int i 0 i 5 i 陣列資料倒序存放 void test2 printf 請輸入5個學生的成績 n for int i 4 i 0 i printf 輸出5個學生的成績 n for int i 0 i 5 i 將陣列的長...