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