說到C語言結構體數組的同時賦值,許多人一想就會想到用以下的這種方法,咱們來寫一個例子:
#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 ;}
這樣就可以實現對結構體數組同時賦值了。
閱讀Linux內核源代碼的時候看到了,原來C語言還有一種更少人知道的方法,使用 "..." 的形式,這種形式是指第幾個元素到第幾個元素,都是一樣的內容。這種用法在標準C上也是允許的,沒有語法錯誤,我們來看看它是怎么用的:
#include <stdio.h>struct student{ int a; int b ; int c ; };//對第0個數組到第999個結構體數組同時賦值一樣的內容 struct student array[1000] = { [0 ... 999] = { .a = 1 , .b = 2 , .c = 3 , }};int main(void){ int i ; //輸出賦值后的數值 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 ;}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答