C/C++數(shù)組與結(jié)構(gòu)體初始化

數(shù)組快捷初始化

常見的初始化方式有以下兩種:

int anTemp[10] = {-1,  -1,-1, -1, -1, -1, -1, -1, -1, -1};  //初始化指定數(shù)據(jù)到數(shù)組
int anTemp[10];  memset(anTemp, 0, sizeof(int) * 10);       //數(shù)組清零

果如數(shù)組到長度是128或者更大呢?對于方法二還是可以接受的,使用第一種方法把數(shù)組初始化成指定內(nèi)容,那就是一個(gè)噩夢,或者用循環(huán)?其實(shí)還有更簡單的方法:

int anTemp[128] = {[0 ... 127] = -1}; 

對,你們沒有看錯(cuò),就是這樣簡單。

結(jié)構(gòu)體初始化

我們用以下結(jié)構(gòu)體為例子:

struct structTemp_t
{ 
    int iTemp; 
    int str[128]; 
}; 

以下是我們常用的初始化方式:

struct structTemp_t st_temp; 
memset(&struct_temp, 0, sizeof(struct strucTemp_t)); 

// 或者
st_temp.iTemp = -1; 
for(int i=0; i<128; i++){
    st_temp.str[i] = 'a'; 
}

實(shí)際上,還有更簡便的初始化方式:

struct strucTemp_t st_temp = {.iTemp = -1, .str[0 ... 127] = '\0'}; 

// 還可以調(diào)換順序
struct structTemp_t st_temp = {.str[0 ... 127] = '\0', .iTemp = -1}; 

擴(kuò)展理解

switch 范圍判斷

int iTemp = 1; 
switch(iTemp) 
{ 
    case 0 ... 9:
        printf("case:%d\n",dd); 
        break; 
    default:
        printf("default:5d\n",dd); 
} 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容