第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何以C來確定數(shù)組的大小?

如何以C來確定數(shù)組的大???

C++ C
搖曳的薔薇 2019-05-30 16:17:42
如何以C來確定數(shù)組的大???如何以C來確定數(shù)組的大小?也就是說,數(shù)組可以容納的元素?cái)?shù)?
查看完整描述

3 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

執(zhí)行摘要:

int a[17];size_t n = sizeof(a)/sizeof(a[0]);

全文答覆:

若要確定數(shù)組的大小(以字節(jié)為單位),可以使用sizeof操作員:

int a[17];size_t n = sizeof(a);

在我的計(jì)算機(jī)上,INT是4個(gè)字節(jié)長,所以n是68。

要確定數(shù)組中的元素?cái)?shù),可以將數(shù)組的總大小除以數(shù)組元素的大小。你可以用這個(gè)類型來做,就像這樣:

int a[17];size_t n = sizeof(a) / sizeof(int);

得到正確的答案(68/4=17),但如果a如果您忘記更改sizeof(int)也是。

因此,首選除數(shù)是sizeof(a[0])數(shù)組的零元素的大小。

int a[17];size_t n = sizeof(a) / sizeof(a[0]);

另一個(gè)優(yōu)點(diǎn)是,您現(xiàn)在可以輕松地參數(shù)化宏中的數(shù)組名稱,并獲得:

#define NELEMS(x)  (sizeof(x) / sizeof((x)[0]))int a[17];size_t n = NELEMS(a);


查看完整回答
反對(duì) 回復(fù) 2019-05-30
?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

這個(gè)sizeof路是對(duì)的敵我您正在處理未作為參數(shù)接收的數(shù)組。作為參數(shù)發(fā)送給函數(shù)的數(shù)組被視為指針,因此sizeof將返回指針的大小,而不是數(shù)組的大小。

因此,在函數(shù)內(nèi)部,此方法不起作用。相反,始終傳遞一個(gè)附加參數(shù)。size_t size指示數(shù)組中的元素?cái)?shù)。

測試:

#include <stdio.h>#include <stdlib.h>void printSizeOf(int intArray[]);void printLength(int intArray[]);int main(int argc, char* argv[]){
    int array[] = { 0, 1, 2, 3, 4, 5, 6 };

    printf("sizeof of array: %d\n", (int) sizeof(array));
    printSizeOf(array);

    printf("Length of array: %d\n", (int)( sizeof(array) / sizeof(array[0]) ));
    printLength(array);}void printSizeOf(int intArray[]){
    printf("sizeof of parameter: %d\n", (int) sizeof(intArray));}void printLength(int intArray[]){
    printf("Length of parameter: %d\n", (int)( sizeof(intArray) / sizeof(intArray[0]) ));}

輸出(在64位Linux操作系統(tǒng)中):

sizeof of array: 28sizeof of parameter: 8Length of array: 7Length of parameter: 2

輸出(在32位Windows操作系統(tǒng)中):

sizeof of array: 28sizeof of parameter: 4Length of array: 7Length of parameter: 1


查看完整回答
反對(duì) 回復(fù) 2019-05-30
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

值得注意的是sizeof在處理已衰變到指針的數(shù)組值時(shí),沒有幫助:即使它指向數(shù)組的開始,但對(duì)編譯器來說,它與指向該數(shù)組的單個(gè)元素的指針相同。指針不會(huì)“記住”用于初始化它的數(shù)組的任何其他內(nèi)容。

int a[10];int* p = a;assert(sizeof(a) / sizeof(a[0]) == 10);assert(sizeof(p) == sizeof(int*));assert(sizeof(*p) == sizeof(int));


查看完整回答
反對(duì) 回復(fù) 2019-05-30
  • 3 回答
  • 0 關(guān)注
  • 1044 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)