C语言数组知识点总结
生活随笔
收集整理的這篇文章主要介紹了
C语言数组知识点总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C語言數(shù)組
定義
- 數(shù)組是用來存儲一系列相同類型數(shù)據(jù)的集合
靜態(tài)數(shù)組
- 靜態(tài)數(shù)組內(nèi)存分配是連續(xù)的(即地址連續(xù)),最低的地址對應首元素,最高的地址對應末尾元素。在棧內(nèi)存上分配了固定大小,在運行時這個大小不能改變。在函數(shù)執(zhí)行完以后,系統(tǒng)自動銷毀;
- 定義一個靜態(tài)數(shù)組實例
動態(tài)數(shù)組
- 動態(tài)數(shù)組的內(nèi)存空間是從堆(heap)上分配(即動態(tài)分配)的,當程序執(zhí)行到分配內(nèi)存語句時,才為其分配存儲空間。運行結(jié)束后,程序員需要free自行銷毀釋放分配的空間。
- 定義一個動態(tài)數(shù)組實例
一維數(shù)組
一維數(shù)組的聲明
類型名 數(shù)組名[常量表達式];例如:
int a[5]; // 注意為常量表達式 不能是變量以上就是定義的一個長度為5的整型數(shù)組,方括號中的常量表達式為數(shù)組的元素個數(shù)(即數(shù)組長度),a為數(shù)組名,同時代表的數(shù)組的首元素地址。
一維數(shù)組的初始化
-
完全初始化:定義時給所有元素賦值
int a[5] = {1, 2, 3, 4, 5}; -
不完全初始化:定義時只給部分的元素賦值
int a[5] = {1,2}這種方法只給部分的元素賦值,未賦初值的系統(tǒng)會為默認為其賦初值為0。
注意:定義數(shù)組一定要為其賦初值,不能a[5] = {};,只有一個大括號,系統(tǒng)會隨機為其賦垃圾值,會導致程序出現(xiàn)不必要的錯誤。
大括號中最少要寫一個數(shù)。比如:int a[5]={0};此時系統(tǒng)默認全部賦0值
-
如果定義數(shù)組時就給數(shù)組中所有元素賦初值,那么就可以不指定數(shù)組的長度,因為此時元素的個數(shù)已經(jīng)確定了。
int a[] = {1,2,3,4,5}; // 不能直接定義 int a[] = {};而不給其賦初值以上形式自動會根據(jù)括號內(nèi)元素生成長度,省去了我們自己去計算數(shù)組長度可能導致錯誤的情況。
訪問數(shù)組元素
- 數(shù)組元素可以通過數(shù)組名稱加索引進行訪問。元素的索引放在方括號內(nèi)。
- 注意:數(shù)組中第一個索引值為 0;長度為n的數(shù)組,最后一個元素的索引值為n - 1,若輸入a[n]則會報 “數(shù)組越界錯誤”
- 也可以用指針訪問數(shù)組,例:
二維數(shù)組
- 相當于一個一維數(shù)組的列表,聲明一個 x 行 y 列的二維整型數(shù)組,如int a[2][3];相當于兩個長度為3的一維數(shù)組;理解上可以將其視為x行y列的矩陣,但其內(nèi)存是連續(xù)的。
二維數(shù)組的聲明
類型名 數(shù)組名 [ x ][ y ]; //x表示行標,y表示l列標- 同樣的 a為數(shù)組名,同時代表的數(shù)組的首元素地址
二維數(shù)組的初始化
// 二維數(shù)組可以通過在括號內(nèi)為每行指定值來進行初始化 a[2][3] = {{1,2,3} , {4,5,6}}; //也可以去掉括號,等價 a[2][3] = {1,2,3,4,5,6};二維數(shù)組的訪問
- 二維數(shù)組中的元素可以通過使用下標索引(行索引和列索引)來訪問
- 也可以通過指針訪問
多維數(shù)組
對于多維數(shù)組其實就是維度的推廣,用法基本上差不多,學習了指針后,對于多維數(shù)組的運用可以應用指針來解決。
有錯誤歡迎指正,謝謝~
總結(jié)
以上是生活随笔為你收集整理的C语言数组知识点总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python学习笔记_week22
- 下一篇: 【解惑】专科生在IT的发展之路