今天研究乙個問題時看linux的核心**,偶然間發現一段有趣的**。直接上圖:
從圖中**可以看出這是乙個int陣列,並且對該陣列進行了初始化。但有意思的是本**中陣列初始化中使用了陣列下標,並且還可以批量初始化。
檔名稱test.c
內容:
#include
#define test_max 10
static
int test_int_arr[test_max]=;
intmain
(int argc,
char
**ar**)
return0;
}
***x:~$ gcc -o test test.c
***x:~$ ./test
0000. -1
0001. -1
0002. -1
0003. -1
0004. -1
0005. 5
0006. -1
0007. -1
0008. -1
0009. 9
***x:~$
原文引用:
從gcc的官方文件中可以得知,上面的這種形式的陣列初始化是iso c99的新特性(相較於c90)。在c99標準中,允許以任意順序指定陣列的索引或結構的名稱。所以gnu c也對該擴充套件進行了相應的支援(注意,這個擴充套件不是在gnu c++中實現的)。
示例:int a[6] = ;
等價**:
int a[6] = ;
示例:int widths = ;
等價**:
int widths = ;
示例:int a[6] = ;
等價**:
int a[6] = ;
對陣列初始化,清空,逆置
include include include void initarray int a,int size void reversearray int a,int size printf d a i void emptyarray int a,int size int main assert 巨集的...
陣列初始化
cpp中陣列初始化方法 簡單的初始化 利用定義變數時賦初值進行初始化。int a 10 float f 10 char ch 5 大括號中的為初始值。較為複雜的初始化 利用memset函式初始化。memset函式用法 void memset void s,int c,size t n 將已開闢記憶體...
陣列初始化
flydream flydream c cat x.cpp include using namespace std int main int argc,char argv flydream flydream c flydream flydream c g g wall x.cpp x.cpp in ...