c语言数组

声明

  1. int a [10];
  2. 通过宏定义来指定数组长度
#define N
int a[N];

初始化

int a [10] = {1,2,3,4,5,6,7,8,9,0};
/* 除了赋值的几个,其他的都是0 */
int a [10] = {1,2,3,4,5,6} ;
/* 声明数组初始化为空是非法的,常用赋值为0 */
int a[10] = {0};
/* 指定初始化 */
int a[10] = {[2] = 21, [9] = 7};

常量数组

常量数组表示不可对数组内部数据修改,编辑器会对修改行为检查

const int a[3] = {1,2,3};

c语言中不会对数组进行越界检查

sizeof

获取数组或指针的大小

可以通过sizeof(a) / sizeof(a[0]) 来获取数组的长度;可以把其定义为宏来访问

#define SIZE ( (int) (sizeof(a) / sizeof(a[0])) )

疑问

int a[3] = {1,2,3};
int b[3] = {4,5,6};
*a = *b;
/* 为什么这样赋值,不能生效,正确写法如下 */
#include
/* 将b指向内存的值复制到a指向的地址,但是是两个地址的引用,互不影响 */
memcpy(a, b, sizeof(a));

你可能感兴趣的:(c语言数组)