一維陣列的使用
一維陣列在記憶體中的儲存
二維陣列的建立和初始化
二維陣列的使用
二維陣列在記憶體中的儲存
陣列作為函式引數
陣列是一組相同型別元素的集合。 陣列的建立方式
type_t arr_name [const_n];
//type_t 是指數組的元素型別
//const_n 是乙個常量表示式,用來指定陣列的大小
素組建立的例項
注:陣列建立, 中要給乙個常量才可以,不能使用變數。
//建立乙個陣列-存放整形-10個
int arr[5] = ; //不完全初始化,剩下的元素預設初始化為0
char arr2[5] = ;
char arr3[5] = "ab";
char arr4 = "abcdef";
// int n = 5;
// char ch[n];//err
printf("%d\n", sizeof(arr4)); //7 sizeof 計算變數、陣列、型別的大小-單位是位元組- 操作符
printf("%d\n", strlen(arr4)); //6 strlen 是求字串長度的,只針對字串求長度- 庫函式-使用得引用標頭檔案
陣列的初始化是指,在建立陣列的同時給陣列的內容一些合理初始值(初始化)。
char arr1 = "abc";
char arr2 = ;
printf("%d\n", sizeof(arr1)); //4
printf("%d\n", sizeof(arr2)); //3
printf("%d\n", strlen(arr1)); //3
printf("%d\n", strlen(arr2)); //隨機數,沒有\0結束字元
對於陣列的使用我們之前介紹了乙個操作符: ,下標引用操作符。它其實就陣列訪問的操作符。
char arr = "abcdef"; //[a][b][c][d][e][f][\0]
printf("%c\n", arr[3]);//d
int i = 0;
for (i = 0; i < (int)strlen(arr); i++)
總結:陣列是使用下標來訪問的,下標是從0開始。
陣列的大小可以通過計算得到。int sz = sizeof(arr) / sizeof(arr[0]);
int arr[10] = ; // 陣列在記憶體中是連續存放的。
陣列在記憶體中是連續存放的。
int arr[3][4] = ;
int arr1[3][4] = , };
// int arr2 = ;//err
// int arr3 = , };//err
// int arr4[2] = , };//err
int arr5[4] = , }; //行可以省略,列不可省略
//賦值
for (i = 0; i < 3; i++)
}//使用
//儲存
for (i = 0; i < 3; i++)
}
二維陣列在記憶體中也是連續儲存的。
陣列名是陣列首元素的位址。(有兩個例外)
sizeof(陣列名),計算整個陣列的大小,sizeof內部單獨放乙個陣列名,陣列名表示整個陣列。
&陣列名,取出的是陣列的位址。&陣列名,陣列名表示整個陣列。
除此1,2兩種情況之外,所有的陣列名都表示陣列首元素的位址。
int arr[10] = ;
printf("%p\n", arr);
printf("%p\n", arr + 1);
printf("%p\n", &arr[0]);
printf("%p\n", &arr[0] + 1);
printf("%p\n", &arr); //陣列的位址≠陣列首元素的位址
printf("%p\n", &arr + 1); //意義不同,增加了5*4個位元組,開始取的是1的位址,+1之後是取5後面的位址
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 將陣列的長...