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 將陣列的長...