中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言怎么獲取數組長度

發布時間:2023-01-05 14:37:04 來源:億速云 閱讀:720 作者:iii 欄目:編程語言

這篇文章主要介紹“c語言怎么獲取數組長度”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“c語言怎么獲取數組長度”文章能幫助大家解決問題。

獲取數組長度的方法:1、使用sizeof()函數,可獲得整個數組在內存中所占的字節數,語法“sizeof(arr)”;2、使用庫函數strlen(),可用于求字符串數組的長度,語法“strlen(arr)”;3、使用while循環遍歷計數,語法“int i=0;while(arr[i++] != '\0');”。

用 sizeof 可以獲得數據類型或變量在內存中所占的字節數。同樣,用 sizeof 也可以獲得整個數組在內存中所占的字節數。因為數組中每個元素的類型都是一樣的,在內存中所占的字節數都是相同的,所以總的字節數除以一個元素所占的字節數就是數組的長度。

那么如何用 sizeof 獲得數組總的字節數呢?只要對數組名使用 sizeof,求出的就是該數組總的字節數。下面寫一個程序看一下:

# include <stdio.h>
int main(void)
{   
    int a[10] = {0};
    printf("sizeof(a) = %d\n", sizeof(a));
    return 0;
}

c語言怎么獲取數組長度

數組 a 是 int 型的,每個元素占 4 字節,所以長度為 10 的數組在內存中所占的字節數就是 40。而總的字節數除以一個元素所占的字節數就是數組的長度,如下面這個程序:

# include <stdio.h>
int main(void)
{   
    int a[10] = {0};
    int cnt = sizeof(a) / sizeof(a[0]);
    printf("cnt = %d\n", cnt);
    return 0;
}

c語言怎么獲取數組長度

這樣不管數組是增加還是減少元素,sizeof(a)/sizeof(a[0]) 都能自動求出數組的長度。需要注意的是,它求出的是數組的總長度,而不是數組中存放的有意義的數據的個數。比如定義一個int型的數組:

int a[10] = {1, 2, 3, 4, 5};

我們只初始化了五個元素,但是 sizeof(a)/sizeof(a[0]) 求出的是 10,而不是 5。換句話說,我們無法通過 sizeof(a)/sizeof(a[0]) 求出數組中有多少個有意義的數據。

方法2:使用庫函數strlen()

strlen 函數是用來求字符串的長度(包含多少個字符)。strlen() 函數從字符串的開頭位置依次向后計數,直到遇見\0,然后返回計時器的值。最終統計的字符串長度不包括\0。

strlen 函數也可用于求字符串數組的長度。

#include <stdio.h>
#include <string.h>

int main(){
    char str[100] = { 0 };
    size_t len;
    gets(str);
    len = strlen(str);
    printf("Length: %d\n", len);
    return 0;
}

c語言怎么獲取數組長度

方法3:使用while循環遍歷計數

#include <stdio.h>

int main(){
    int a[10] = {1,2,3,4,5,6,7,8,9};
    int i=0;
    while(a[i++] != '\0');
    printf("Length: %d\n", i);
    return 0;
}

c語言怎么獲取數組長度

這種方法適用于計算數組中實際元素多少

關于“c語言怎么獲取數組長度”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

革吉县| 海伦市| 伊春市| 木兰县| 梨树县| 兴国县| 济阳县| 兖州市| 油尖旺区| 花莲县| 青河县| 梓潼县| 茶陵县| 河北省| 思南县| 大连市| 治多县| 乐陵市| 永德县| 上栗县| 石阡县| 庆城县| 孙吴县| 宁阳县| 璧山县| 南充市| 措勤县| 威远县| 庆阳市| 伊通| 中山市| 宜城市| 安福县| 太原市| 霸州市| 得荣县| 康保县| 腾冲县| 增城市| 榆社县| 赣州市|