溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言數(shù)組的操作方法有哪些

發(fā)布時(shí)間:2022-04-25 09:18:54 來(lái)源:億速云 閱讀:305 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“C語(yǔ)言數(shù)組的操作方法有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“C語(yǔ)言數(shù)組的操作方法有哪些”吧!

一、一維數(shù)組

1.創(chuàng)建

//如何創(chuàng)建數(shù)組
int num[10];
char arr[10];
double sum[10];
float fix[10];
//變長(zhǎng)數(shù)組
//數(shù)組的大小是變量
//C99語(yǔ)法支持
int a = 10;
int arr[a];

2.初始化

int arr[3] = {1,2,3};
//int數(shù)組類型
//arr數(shù)組名
//[3]數(shù)組有3個(gè)元素
//{1,2,3}初始化元素為1,2,3

C語(yǔ)言數(shù)組的操作方法有哪些

C語(yǔ)言數(shù)組的操作方法有哪些

C語(yǔ)言數(shù)組的操作方法有哪些

3.使用

#include<stdio.h>
int main()
{
	int arr[10] = { 0 };//給每個(gè)元素初始化為0
     //數(shù)組是通過(guò)下標(biāo)訪問(wèn)的
    //下標(biāo)是從0開(kāi)始的
	int arr[4] = 5;//把下標(biāo)是4的元素給賦值為5
	printf("%d\n", arr[4]);//輸出的是數(shù)組中第5個(gè)元素的值
	return 0;
}
//結(jié)果是5

4.數(shù)組在內(nèi)存中的存儲(chǔ)

C語(yǔ)言數(shù)組的操作方法有哪些

5.數(shù)組大小的計(jì)算

int arr[10];
int sz = sizeof(arr)/sizeof(arr[0]);
//sizeof(arr)計(jì)算的是數(shù)組的總大小
//sizeof(arr[0])計(jì)算的是第一個(gè)元素大小
//總大小/第一個(gè)元素大小=元素個(gè)數(shù)

二、二維數(shù)組

1.創(chuàng)建

//創(chuàng)建一個(gè)3行3列的數(shù)組
int arr[3][3];
char sum[3][3];
//[]行的部分可以省略,列的不可以
int arr[][3];
char sum[][3];

C語(yǔ)言數(shù)組的操作方法有哪些

2.初始化

//創(chuàng)建的同時(shí)賦值
//3行3列的二維數(shù)組有9個(gè)元素
int arr[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int sum[][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

C語(yǔ)言數(shù)組的操作方法有哪些

3.使用

二維數(shù)組行和列的下標(biāo)也是從0開(kāi)始的

C語(yǔ)言數(shù)組的操作方法有哪些

#include<stdio.h>
int main()
{
    int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
    int i = 0;
    int j = 0;
    //遍歷二維數(shù)組
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            //輸出行和列元素組成的坐標(biāo)
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

輸出結(jié)果:

C語(yǔ)言數(shù)組的操作方法有哪些

4.二維數(shù)組在內(nèi)存中的存儲(chǔ)

#include<stdio.h>
int main()
{
    int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
    int i = 0;
    int j = 0;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("&arr[%d] [%d] = %p\n", i, j, &arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

輸出結(jié)果:

C語(yǔ)言數(shù)組的操作方法有哪些

二維數(shù)組在內(nèi)存中也是連續(xù)存放的

一行是連續(xù),跨行也是連續(xù) 

三、數(shù)組作為函數(shù)參數(shù)

1.關(guān)于數(shù)組名是數(shù)組首元素的地址的兩個(gè)例外

(1)sizeof[數(shù)組名] - 數(shù)組名表示的是整個(gè)數(shù)組 - 計(jì)算的是整個(gè)數(shù)組的大小 - 單位是字節(jié)。

(2)&數(shù)組名 - 數(shù)組名表示整個(gè)數(shù)組 - 取出的是整個(gè)數(shù)組的地址。

2.冒泡排序

(1) 冒泡排序的思想:兩兩相鄰的元素進(jìn)行比較,并且可能會(huì)進(jìn)行交換

C語(yǔ)言數(shù)組的操作方法有哪些

(2)代碼示例

#include<stdio.h>
void bubble_sort(int arr[], int sz)//形參arr本質(zhì)是指針
{
    //確定趟數(shù)
    int i = 0;
    //趟數(shù)
    for (i = 0; i < sz - 1; i++)
    {
        //一趟冒泡排序的過(guò)程
        int j = 0;
        //判斷相鄰的兩個(gè)數(shù)的大小,并交換
        //每一趟結(jié)束后要排的數(shù)字都會(huì)減少一個(gè)
        for (j = 0; j < sz - 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                //交換
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}
int main()
{
    int i = 0;
    int arr[] = { 5,4,3,2,1,0 };
        //排序?yàn)樯?冒泡排序
        //計(jì)算數(shù)組元素個(gè)數(shù)
    int sz = sizeof(arr) / sizeof(arr[0]);
    bubble_sort(arr, sz);//冒泡排序的函數(shù)的調(diào)用
    //數(shù)組傳參的時(shí)候,
    //傳遞的其實(shí)是數(shù)組首元素的地址
    for (i = 0; i < sz; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

輸出結(jié)果:

0 1 2 3 4 5 

到此,相信大家對(duì)“C語(yǔ)言數(shù)組的操作方法有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI