数组的初始化

//

//  main.c

//  数组的初始化

//

//  Created by micalafei on 15/8/18.

//  Copyright (c) 2015年 micalafei. All rights reserved.

//

 

#include <stdio.h>

 

int main(int argc, const char * argv[]) {

//    需要保存100个学生的成绩

//    格式:元素类型 数组名称[元素个数];

//    数组初始化的方式:基本上跟函数,变量等差不多;

//    1.先定义在初始化

/*

    int score[100];

    score[0] = 99;

    score[1] = 98;

    score[2] = 97;

    score[3] = 96;

    score[4] = 95;

//    ....

    printf("score[0] = %i\n",score[0]);

    printf("score[1] = %i\n",score[1]);

    printf("score[2] = %i\n",score[2]);

 */

 

//    2.完全初始化

    int score[2] = {12,13};

    printf("score[0] = %i\n",score[0]);

    printf("score[1] = %i\n",score[1]);

    

//    3.部分初始化

//    默认从0开始初始化, 依次赋值

//    注意: 如果"在部分初始化中"对应的内存没有被初始化, 那么默认是0

    int scores1[3] = {11, 22};

    printf("scores1[0] = %i\n", scores1[0]);

    printf("scores1[1] = %i\n", scores1[1]);

    printf("scores1[2] = %i\n", scores1[2]);

    

    printf("-------\n");

    

//    注意: 如果没有对数组进行初始化(完全和部分), 那么不要随便使用数组中的数据, 可能是一段垃圾数据(随机值)

    int scores2[3];

    printf("scores2[0] = %i\n", scores2[0]);

    printf("scores2[1] = %i\n", scores2[1]);

    printf("scores2[2] = %i\n", scores2[2]);

    

    printf("-------\n");

   

 

//注意: 不建议使用变量定义数组, 如果使用了变量定义数组, 作为数组的元素个数, 不初始化的情况下是随机值, 如果初始化会直接报错

 

//    int number = 3;

//    int scores3[number] = {12,13};        //直接报错了;

//    printf("-------\n");

 

//报错信息:

///Users/micalafei/Desktop/ios广州小码哥150810班级学习/0818(day07)/day07/数组的初始化/main.c:56:17: Variable-sized object may not be initialized

    

//  4.没有定义元素个数的初始化:

// 注意: 如果定义的同时进行初始化, 那么元素的个数可以省略

// 省略之后, 初始化赋值几个数据, 那么数组的长度就是几. 也就是说数组将来就能存储几个数据

    int scores5[] = {1, 3};

    printf("0 = %i\n", scores5[0]);

    printf("1 = %i\n", scores5[1]);

    printf("-------\n");

//    注意; 如果定义数组时没有进行初始化, 那么不能省略元素个数

//    int scores6[];

    //报错信息:

///Users/micalafei/Desktop/ios广州小码哥150810班级学习/0818(day07)/day07/数组的初始化/main.c:70:9: Definition of variable with array type needs an explicit size or an initializer

    

//    5.建立索引

    int scores7[10] = {[3] = 10,[5] = 15};

    printf("scores7[3] = %i\n",scores7[3]);

    printf("scores7[5] = %i\n",scores7[5]);

//    注意: 只能在定义的同时利用{}进行初始化, 如果是先定义那么就不能使用{}进行初始化

//    如果先定义那么就不能再进行整体赋值, 只能单个赋值

 

    return 0;

}

 

posted @ 2015-08-18 22:32  micalafei  阅读(469)  评论(0编辑  收藏  举报