您好,登錄后才能下訂單哦!
說到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 ; }
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。