C語言結(jié)構(gòu)體數(shù)組同時賦值的另類用法
說到C語言結(jié)構(gòu)體數(shù)組的同時賦值,許多人一想就會想到用以下的這種方法,咱們來寫一個例子:
#include <stdio.h>
struct student
{
int a;
int b ;
int c ;
};
struct student array1[1000] ;
int main(void)
{
int i ;
for(i = 0 ; i < 1000 ; i++)
{
array[i].a = 1 ;
array[i].b = 2 ;
array[i].c = 3 ;
}
for(i = 0 ; i < 1000 ; i++)
{
printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" ,
i, array[i].a ,i, array[i].b ,i, array[i].c);
}
return 0 ;
}
這樣就可以實現(xiàn)對結(jié)構(gòu)體數(shù)組同時賦值了。
閱讀Linux內(nèi)核源代碼的時候看到了,原來C語言還有一種更少人知道的方法,使用 "..." 的形式,這種形式是指第幾個元素到第幾個元素,都是一樣的內(nèi)容。這種用法在標準C上也是允許的,沒有語法錯誤,我們來看看它是怎么用的:
#include <stdio.h>
struct student
{
int a;
int b ;
int c ;
};
//對第0個數(shù)組到第999個結(jié)構(gòu)體數(shù)組同時賦值一樣的內(nèi)容
struct student array[1000] = {
[0 ... 999] = {
.a = 1 ,
.b = 2 ,
.c = 3 ,
}
};
int main(void)
{
int i ;
//輸出賦值后的數(shù)值
for(i = 0 ; i < 1000 ; i++)
{
printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" ,
i, array[i].a ,i, array[i].b ,i, array[i].c);
}
return 0 ;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
C++實現(xiàn)LeetCode(83.移除有序鏈表中的重復(fù)項)
這篇文章主要介紹了C++實現(xiàn)LeetCode(83.移除有序鏈表中的重復(fù)項),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07
Linux下Select多路復(fù)用實現(xiàn)簡易聊天室示例
大家好,本篇文章主要講的是Linux下Select多路復(fù)用實現(xiàn)簡易聊天室示例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
C語言中四種取整方式,取余/取模運算以及負數(shù)取模問題詳解
這篇文章主要介紹了C語言中四種取整方式及負數(shù)取模問題,包括了算法的分析與改進,是很多程序設(shè)計競賽中常見的算法,需要的朋友可以參考下2021-09-09

