A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HiGodl 中级黑马   /  2015-9-22 21:27  /  676 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组就是存储一组数据的变量


           数组总体分配内存是从小到大分配的,数组的地址是首元素的地址
           数组名代表数组的地址:int age[4];   age就是这个数组的内存地址


           数组元素个数放到数组名称后:int age[4],定义数组只能这么写,不能像java那样 int [4] age这样写是不对的

           数组作为函数参数时可省略数组长度
           数组参数传递为地址传递,函数中更改形参数组的值,实参数组的值也会改变
           数组当作函数参数传递时,会当作指针变量来使用,指针变量在64bit编译器环境下,占据8个字节



下面来看一下如何正确定义数组以及数组定义的易错点


  1. #include <stdio.h>

  2. int main(int argc, const char * argv[]) {
  3.     int age[6] = {1,2,3,4,5};//正确定义数组
  4.     int age2[12] = {[3] = 12,[4] = 15};//正确定义数组,直接给数组第4第5位赋值
  5.     int age3[] = {12,123,14}; //正确定义数组,长度为3
  6.     int age4[]; //错误的,这样定义数组程序不知道要给age4分配多少内存空间
  7.     int age5[5];
  8.     age5 = {1,2,3,4,5}; //这样定义数组也是错误的,只能在定义数组的同时进行初始化
  9.     age5[0] = 12; 这样写是对的,可以对数组中的元素单独赋值
  10.     int a = 10;
  11.     int ages[a]={12,32,12};//编译时有问题,定义数组的同时并初始化,数组元素个数必须为常量或者不写,如果是变量不知道变量是否初始化
  12.    
  13.     return 0;
  14.    
  15. }
复制代码




2 个回复

倒序浏览
zzx0826 来自手机 中级黑马 2015-9-22 21:41:38
沙发
学习啦!
回复 使用道具 举报
C语言还是不提供不定长的数组定义啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马