C語言零基礎(chǔ)入門(2)
1. 數(shù)組
數(shù)組是一組相同類型變量的有序集合,用于存放一組相同類型的數(shù)據(jù)。這一組變量用數(shù)組名和從0開始的下標(biāo)標(biāo)識,使用內(nèi)存中一塊連續(xù)的存儲空間。依據(jù)數(shù)組中元素下標(biāo)的個(gè)數(shù)分為一維數(shù)組、二維數(shù)組和多維數(shù)組。
1.1 一維數(shù)組
1.1.1 一維數(shù)組的定義
一維數(shù)組定義的一般形式為:
類型說明符 數(shù)組名[常量或常量表達(dá)式];
數(shù)組一經(jīng)定義,其長度就不可改變,或者說,數(shù)組中元素的個(gè)數(shù)是固定的。程序編譯或運(yùn)行時(shí),將為數(shù)組分配一塊固定大小的連續(xù)的存儲空間。例如:
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)對數(shù)組全部元素初始化。數(shù)組長度缺省,初值個(gè)數(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個(gè)元素賦初值,a[0]的初值為1,……,a[4]的初值為5,其余元素的初值為0。
如果沒有對數(shù)組初始化,則數(shù)組元素的初值是一個(gè)不確定的值。
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];
兩個(gè)方括號中的常量表達(dá)式1和2分別規(guī)定了數(shù)組第一維的長度和第二維的長度,也稱為行數(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ù)對二維數(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)對全部元素初始化或按行初始化時(shí),第一維的長度可以缺省,但第二維的長度必須注明。如:
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)文章
opencv?C++模板匹配的簡單實(shí)現(xiàn)
這篇文章主要介紹了opencv?C++模板匹配的簡單實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
c語言詳解動態(tài)內(nèi)存分配及常見錯(cuò)誤的解決
給數(shù)組分配多大的內(nèi)存空間?你是否和初學(xué)C時(shí)的我一樣,有過這樣的疑問。這一期就來聊一聊動態(tài)內(nèi)存的分配,讀完這篇文章,你可能對內(nèi)存的分配有一個(gè)更好的理解2022-04-04
C++中strcpy函數(shù)的實(shí)現(xiàn)
strncpy這個(gè)可以指定拷貝字符的長度,指定源地址,目標(biāo)地址,還有需要拷貝的字符的長度; strcpy只能傳入兩個(gè)參數(shù),只指定拷貝的起始地址跟目標(biāo)地址,然后整體拷貝;2015-10-10

