C语言 一维数组

一维数组

1.一维数组的定义

* 定义的形式为:类型  数组名[元素个数]

int a[5];

 

* []只能放在数组名的后面,下面的都是错误写法:

int[5] a; // 错误
int[] b; // 错误

 

* []里面的个数必须是一个固定值,可以是常量(比如6、8)、常量表达式(比如3+4、5*7)。绝对不能使用变量或者变量表达式来表示元素个数,大多数情况下不要省略元素个数(当数组作为函数的形参和数组初始化时除外)

下面的都是正确写法:

int  a[5];   // 整型常量
int  b['A'];  // 字符常量,其实就是65
int  c[3*4];  // 整型常量表达式

下面的都是错误写法:

int a[]; // 没有指定元素个数,错误

int i = 9;
int a[i]; // 用变量做元素个数,错误

 

2.一维数组的初始化

  2.1在定义时初始化 

int  arr[3] = {1,,2,3};

  2.2先定义后赋值

int arr[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

  2.3错误做法

int arr[3];
arr = {1,2,3};
//因为arr为地址,是一个常量,常量是不可以再赋值的,比如 10=8;这是错的

  

3.一维数组的存储

定义数组时,系统将按照数组类型和个数分配一段连续的存储空间来存储数组元素。要注意的是,数组名代表着整个数组的地址,也就是数组的起始地址。

例如  char arr[3] = {'A','B','C'};

内存中分配 如下

地址         数组    存储内容

0x1101      arr[0]    A

0x1102      arr[1]    B

0x1103      arr[2]    C

即 arr的内存地址为arr 或者为 &arr[0] = 0x1101

 

posted @ 2014-10-24 20:06  杯水文圣  阅读(371)  评论(0编辑  收藏  举报