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ǔ)言數(shù)據(jù)的存儲(chǔ)專項(xiàng)分析
使用編程語(yǔ)言進(jìn)行編程時(shí),需要用到各種變量來存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么2022-07-07
opencv?C++模板匹配的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了opencv?C++模板匹配的簡(jiǎn)單實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
c語(yǔ)言詳解動(dòng)態(tài)內(nèi)存分配及常見錯(cuò)誤的解決
給數(shù)組分配多大的內(nèi)存空間?你是否和初學(xué)C時(shí)的我一樣,有過這樣的疑問。這一期就來聊一聊動(dòng)態(tài)內(nèi)存的分配,讀完這篇文章,你可能對(duì)內(nèi)存的分配有一個(gè)更好的理解2022-04-04
C++中strcpy函數(shù)的實(shí)現(xiàn)
strncpy這個(gè)可以指定拷貝字符的長(zhǎng)度,指定源地址,目標(biāo)地址,還有需要拷貝的字符的長(zhǎng)度; strcpy只能傳入兩個(gè)參數(shù),只指定拷貝的起始地址跟目標(biāo)地址,然后整體拷貝;2015-10-10
淺談C++高并發(fā)場(chǎng)景下讀多寫少的優(yōu)化方案
本文主要介紹了淺談C++高并發(fā)場(chǎng)景下讀多寫少的優(yōu)化方案,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

