聲明
- int a [10];
- 通過宏定義來指定數(shù)組長度
#define N
int a[N];
初始化
int a [10] = {1,2,3,4,5,6,7,8,9,0};
/* 除了賦值的幾個(gè)撩独,其他的都是0 */
int a [10] = {1,2,3,4,5,6} ;
/* 聲明數(shù)組初始化為空是非法的,常用賦值為0 */
int a[10] = {0};
/* 指定初始化 */
int a[10] = {[2] = 21, [9] = 7};
常量數(shù)組
常量數(shù)組表示不可對(duì)數(shù)組內(nèi)部數(shù)據(jù)修改,編輯器會(huì)對(duì)修改行為檢查
const int a[3] = {1,2,3};
c語言中不會(huì)對(duì)數(shù)組進(jìn)行越界檢查
sizeof
獲取數(shù)組或指針的大小
可以通過sizeof(a) / sizeof(a[0]) 來獲取數(shù)組的長度致稀;可以把其定義為宏來訪問
#define SIZE ( (int) (sizeof(a) / sizeof(a[0])) )
疑問
int a[3] = {1,2,3};
int b[3] = {4,5,6};
*a = *b;
/* 為什么這樣賦值,不能生效,正確寫法如下 */
#include<string.h>
/* 將b指向內(nèi)存的值復(fù)制到a指向的地址,但是是兩個(gè)地址的引用狸眼,互不影響 */
memcpy(a, b, sizeof(a));