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

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

如何將數(shù)組的所有成員初始化為相同的值?

如何將數(shù)組的所有成員初始化為相同的值?

如何將數(shù)組的所有成員初始化為相同的值?我在C中有一個大數(shù)組(如果有所不同,則不是C ++)。我想將所有成員初始化為相同的值。我發(fā)誓我曾經(jīng)知道一個簡單的方法來做到這一點(diǎn)。我可以memset()在我的情況下使用,但是沒有辦法在C語法中構(gòu)建這樣做嗎?
查看完整描述

3 回答

?
拉丁的傳說

TA貢獻(xiàn)1789條經(jīng)驗 獲得超8個贊

除非該值為0(在這種情況下,您可以省略初始化程序的某些部分,并且相應(yīng)的元素將初始化為0),否則沒有簡單的方法。

但是,不要忽視明顯的解決方案:

int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };

缺少值的元素將初始化為0:

int myArray[10] = { 1, 2 }; // initialize to 1,2,0,0,0...

所以這會將所有元素初始化為0:

int myArray[10] = { 0 }; // all elements 0

在C ++中,空的初始化列表也會將每個元素初始化為0. C 不允許這樣做:

int myArray[10] = {}; // all elements 0 in C++

請記住,如果未指定初始化程序,具有靜態(tài)存儲持續(xù)時間的對象將初始化為0:

static int myArray[10]; // all elements 0

而“0”并不一定意味著“所有位為零”,因此使用上述內(nèi)容比memset()更好,更便攜。(浮點(diǎn)值將初始化為+0,指向空值的指針等)


查看完整回答
反對 回復(fù) 2019-05-28
?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗 獲得超3個贊

對于靜態(tài)初始化具有相同值的大型數(shù)組,無需多次復(fù)制粘貼,您可以使用宏:


#define VAL_1X     42

#define VAL_2X     VAL_1X,  VAL_1X

#define VAL_4X     VAL_2X,  VAL_2X

#define VAL_8X     VAL_4X,  VAL_4X

#define VAL_16X    VAL_8X,  VAL_8X

#define VAL_32X    VAL_16X, VAL_16X

#define VAL_64X    VAL_32X, VAL_32X


int myArray[53] = { VAL_32X, VAL_16X, VAL_4X, VAL_1X };

如果您需要更改該值,則必須僅在一個地方進(jìn)行更換。

編輯:可能有用的擴(kuò)展

Jonathan Leffler提供

您可以通過以下方式輕松概括:

#define VAL_1(X) X

#define VAL_2(X) VAL_1(X), VAL_1(X)

/* etc. */

可以使用以下方法創(chuàng)建變體:


#define STRUCTVAL_1(...) { __VA_ARGS__ }

#define STRUCTVAL_2(...) STRUCTVAL_1(__VA_ARGS__), STRUCTVAL_1(__VA_ARGS__)

/*etc */ 

適用于結(jié)構(gòu)或復(fù)合數(shù)組。


#define STRUCTVAL_48(...) STRUCTVAL_32(__VA_ARGS__), STRUCTVAL_16(__VA_ARGS__)


struct Pair { char key[16]; char val[32]; };

struct Pair p_data[] = { STRUCTVAL_48("Key", "Value") };

int a_data[][4] = { STRUCTVAL_48(12, 19, 23, 37) };

宏名稱可以協(xié)商。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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