C-数组

1, 特点

  •  只能存放一种类型的数据, 比如int类型的数组、float类型的数组
  • 存放的数据成为“元素”

2, 定义格式

      类型 数组名[元素个数】

      int     ages[5]

3,正确:

      int ages[5] = {[3] = 10, [4] = 11};

 

int ages['A'] = {10, 11, 12, 14, 16};


int size =  sizeof(ages);

printf ("%d\n", size);//数组占据多少个字节


结果为260//

 

int ages[5] 在内存中的存储形式:

所以int ages['A'] 相等于 int  ages[65] 一共有 65*4 个字节

 

 

  1,   错误写法:int ages[5];

           ages = {10,11,12,14};

      //只能在定义数组的同时进行初始化

  2,  正确写法:int count = 5;

            int ages[count];

           ages[0] = 10;

           ages[1] = 11;//定义数组和初始化没有同时进行

      错误写法:int count = 5; int ages [count] = {10, 11, 12};

      //如果想在定义数组的同时进行初始化,数组元素的个数必须是常量,或者不写

 

  • 计算数组元素个数 int count  = sizeof(ages)/sizeof(int);

数组 在内存中的存储细节

  数组里面的元素是从小到大排列的

  如

int main()
{
       char cs[5] = {'a', 'A', 'D', 'e', 'f'}
}                                                          

     

int ages[3] = {10, 19, 18};

ages地址为0x7ff5df43bd8

ages[0]:   0x7ff5df43bd8

ages[1]: 0x7ff5df43bdc

ages[2]:   0x7ff5df43be0

元素地址与数组下标一样是递增的 

 

数组与函数

//数组作为函数参数,可以省略元素个数
//数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组
//数组作为函数参数传递时,函数当做指针来使用,在64bit编译器环境下,占据8个字节
//
//改了里面的数组相当于改了外面的数组

void change (int array[])

 

 

 

posted @ 2015-10-31 12:00  yhidr  阅读(205)  评论(0编辑  收藏  举报