C語言 陣列

2021-10-22 16:53:21 字數 3205 閱讀 6467

一維陣列的使用

一維陣列在記憶體中的儲存

二維陣列的建立和初始化

二維陣列的使用

二維陣列在記憶體中的儲存

陣列作為函式引數

陣列是一組相同型別元素的集合。 陣列的建立方式

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