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<string.h>
/* 将b指向内存的值复制到a指向的地址,但是是两个地址的引用,互不影响 */
memcpy(a, b, sizeof(a));

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容