C語言零基礎(chǔ)入門(2)
1. 數(shù)組
數(shù)組是一組相同類型變量的有序集合,用于存放一組相同類型的數(shù)據(jù)。這一組變量用數(shù)組名和從0開始的下標(biāo)標(biāo)識,使用內(nèi)存中一塊連續(xù)的存儲空間。依據(jù)數(shù)組中元素下標(biāo)的個數(shù)分為一維數(shù)組、二維數(shù)組和多維數(shù)組。
1.1 一維數(shù)組
1.1.1 一維數(shù)組的定義
一維數(shù)組定義的一般形式為:
類型說明符 數(shù)組名[常量或常量表達(dá)式];
數(shù)組一經(jīng)定義,其長度就不可改變,或者說,數(shù)組中元素的個數(shù)是固定的。程序編譯或運(yùn)行時,將為數(shù)組分配一塊固定大小的連續(xù)的存儲空間。例如:
int array[10];
定義一維數(shù)組array,數(shù)據(jù)元素的類型為int,數(shù)組中有10個元素。這十個元素下標(biāo)從0~9。
1.1.2 一維數(shù)組的初始化
(1)為數(shù)組的全部元素賦初值。如:
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
(2)對數(shù)組全部元素初始化。數(shù)組長度缺省,初值個數(shù)就是數(shù)組長度。如:
int a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
(3)為數(shù)組部分元素賦初值。如:
int a[10] = {1, 2, 3, 4, 5};
只對數(shù)組前5個元素賦初值,a[0]的初值為1,……,a[4]的初值為5,其余元素的初值為0。
如果沒有對數(shù)組初始化,則數(shù)組元素的初值是一個不確定的值。
1.1.3 一維數(shù)組的引用
【例】將數(shù)組中的元素逆序存放后輸出(不得另外開辟數(shù)組存儲空間)。
#include<stdio.h> #define N 10 void main() { int i, t, a[N]; for(i = 0; i < N; i++) { scanf("%d", &a[i]); //為數(shù)組元素賦值 } printf("交換前的數(shù)組元素\n"); for(i = 0; i < N; i++) //輸出交換前數(shù)組元素 { printf("%6d", a[i]); } for(i = 0; i < N/2; i++) //交換 { t = a[i]; a[i] = a[N - i - 1]; a[N - i - 1] = t; } printf("\n交換后代的數(shù)組元素\n"); for(i = 0; i < N; i++) //輸出交換后數(shù)組元素 { printf("%6d", a[i]); } printf("\n"); }
運(yùn)行及結(jié)果如下圖所示:
1.2 二維數(shù)組及多維數(shù)組
1.2.1 二維數(shù)組的定義
二維數(shù)組定義的一般形式為:
類型說明符 數(shù)組名 [常量表達(dá)式1] [常量表達(dá)式2];
兩個方括號中的常量表達(dá)式1和2分別規(guī)定了數(shù)組第一維的長度和第二維的長度,也稱為行數(shù)和列數(shù)。兩個常量表達(dá)式的乘積是數(shù)組元素的個數(shù)。
事實上,二維數(shù)組是由一維數(shù)組擴(kuò)展而來的。若一維數(shù)組的元素本身還是一個一維數(shù)組,則構(gòu)成二維數(shù)組。以此類推,可構(gòu)成三維數(shù)組,乃至多維數(shù)組。
1.2.2 二維數(shù)組的初始化
(1)按行為二維數(shù)組元素賦初值。如:
int a [3] [5] = {{0, 1, 2, 3, 4}, {1, 2, 3, 4, 5}, {2, 3, 4, 5, 6}};
(2)使用一維數(shù)據(jù)對二維數(shù)組元素賦初值。如:
int a [4] [5] = {0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6};
(3)按行為二維數(shù)組部分元素賦初值。如:
int a [4] [5] = {{1, 3}, {2}, {0}, {0, 2, 4}};
(4)當(dāng)對全部元素初始化或按行初始化時,第一維的長度可以缺省,但第二維的長度必須注明。如:
int a [] [4] = {1, 2, 3, 4, 5, 6, 7, 8}
int b [] [4] = {{1, 2, 3}, {1, 2, 3}}
1.2.3 二維數(shù)組的引用
【例】對5*5的矩陣編程。
(1)求出主對角線元素的和;
(2)求出矩陣下三角元素的和;
(3)找出主對角線上最大值元素和它的位置。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
可能是全網(wǎng)最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫教程
QT眾所周知是一個開源的,以C++為底層的可視化工具庫,下面這篇文章主要給大家介紹了關(guān)于最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫教程的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04OpenCV實現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo)
這篇文章主要為大家詳細(xì)介紹了OpenCV實現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08深入講解C++數(shù)據(jù)類型轉(zhuǎn)換的相關(guān)函數(shù)的知識
這篇文章主要介紹了深入講解C++數(shù)據(jù)類型轉(zhuǎn)換的相關(guān)函數(shù)的知識,包括類型轉(zhuǎn)換運(yùn)算符函數(shù)等內(nèi)容,需要的朋友可以參考下2015-09-09Qt利用QState狀態(tài)機(jī)實現(xiàn)控件互斥操作詳解
這篇文章主要為大家詳細(xì)介紹了Qt如何利用QState狀態(tài)機(jī)實現(xiàn)控件互斥操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12