C語言 陣列詳解

2021-09-29 16:44:03 字數 2402 閱讀 1844

1、一維陣列

陣列:一組相同型別的資料的集合

在記憶體中,是一片連續的空間

陣列名就是陣列的首位址

//注意:陣列可以初始化,但絕對不可以整體賦值

錯誤示範:

arr = {};//對陣列名賦值是錯誤的

arr[5] = {};//對陣列某乙個下標賦值只可以賦乙個

求陣列的大小,sizeof(陣列名);

2、資料型別 陣列名[陣列的大小]; //定乙個陣列,大小固定

int arr[10];//定義乙個整型陣列,裡面可以存放10個整型數

char name[10];//定義乙個字元陣列,裡面可以存放10個字元

訪問陣列成員:使用陣列下標來進行訪問

int arr[n];

下標範圍是0~n-1 //arr[n+2]屬於陣列越界

陣列越界是肯定錯誤的做法,但是不一定會出錯,不要這麼做

-----如果對該片空間我們恰好有許可權操作,那麼不會報錯

-----如果沒有許可權操作,絕對會報錯,段錯誤(訪問到沒有許可權訪問的資源)

3、資料型別 陣列名[陣列的大小]={}; //初始化

char name[10]=「zhangsan」;

.1陣列的完全初始化

int arr[5] = ; //arr[0]~arr[4]

.2陣列的部分初始化

int arr[100] = ;//除了初始化的幾位資料,剩下的所有成員全部為0

int arr[100] = ;

int arr[100] = {};

.3指定元素初始化

int arr[100] = ;

如果不想初始化,陣列的賦值還可以通過迴圈乙個乙個賦值

使用迴圈將陣列乙個乙個列印出來

4、二維陣列

定義二維陣列:

int arr[3][4];//乙個三行四列的二維陣列

二維陣列初始化:可以理解為是多個一維陣列的集合

.1完全初始化:

int arr[3][4] = ,,};

2部分初始化

int arr[3][4] = };

.3指定元素初始化

int arr[3][4] = ,[2]=};

//二維陣列使用雙層迴圈進行列印

int arr[3][4]

for(i=0;i<3;i++)

printf("\n");

}

5、擴充套件:

int arr1 = ;

int arr2[3] = };

arr2[2]

//一維陣列如果不寫陣列大小,必須初始化,並且初始化幾個值,陣列就多大

//二維陣列列數可以省略,行數絕對不可以省略

變長陣列://雖然沒有錯,但是盡量少用

int n;

scanf("%d",&n);

int arr[n];

6、字元陣列(一維) //就是字串

char arr[10];

//每個字串最後會預設有乙個尾0,'\0'

char arr[5] = ;//一般不建議這麼定義字元陣列

char name[5]="lisi";

char name[5]=;

sizeof(name);

.1 strlen(引數一);//求位元組長度,不包括'\0'

char arr="hello";

sizeof(arr);//6,包含'\0'

strlen(arr);//5

//將字串作為引數傳遞,會將字串的長度返回給我們

.2 strcpy(引數一,引數二);//拷貝字串

//將引數二中的內容拷貝到引數一中

char arr[10]="hello";

char ret[10];

strcpy(ret,arr);

.3 strcmp(引數一,引數二);//比較兩個字串是否相等

strcmp(arr1,arr2);//如果arr1與arr2內容相同,返回0,如果arr1大於arr2,返回正數,如果arr17、陣列清零函式

int arr[10];

bzero(要清零的陣列,陣列的位元組長度);//僅僅只能做清零操作

bzero(arr,40);

memset(陣列,要改變的數,陣列的位元組長度);//可以清空成自己指定的資料

memset(arr,1,40);

--------------------------------------end---------------------------------------------

C語言指標與陣列詳解

指標與陣列是 c 語言中很重要的兩個概念,它們之間有著密切的關係,利用這種 關係,可以增強處理陣列的靈活性,加快執行速度,本文著重討論指標與陣列之 間的聯絡及在程式設計中的應用。1 指標與陣列的關係 當乙個指標變數被初始化成陣列名時,就說該指標變數指向了陣列。如 char str 20 ptr pt...

詳解C語言初階之陣列

目錄 所謂陣列 array 就是具有相同資料型別的集合,存放的資料型別即陣列本身的型別。可以發現儲存的都是int型 補充 除錯小技巧 除錯視窗 按f5進行除錯,開啟選單欄中的除錯 視窗 監視 隨便開啟乙個監視視窗,輸入arr,將程式執行過arr的初始化即可觀察到arr內部進行的初始化 a 完全初始化...

C語言變長陣列使用詳解

看如下 include typedef struct softarray int main 執行結果 root vm 0 7 www.cppcns.comcentos mydoc a.out the struct s size is 4 我們可以看出,softarrwww.cppcns.comay結...