黑马程序员————C语言——数组

------<a href=" http://www.itheima.com " target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一、数组的定义
       数组,从字面上看,就是一组数据的意思,没错,数组就是用来存储一组数据的。数组是有序数据的结合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下表来唯一地确定数组中的元素。例如一个班有10个学生,可以用S[1],S[2],S[3].........等代表10个学生的成绩,S是数组名,下标代表学生序号。

    1.定义

       类型说明符 数组名[常量表达式];

       int  s[10];

   2. 使用
   简单初始化:int s[5] = {19, 19, 20, 21, 25};
   元素有顺序之分,每个元素都有一个唯一的下标(索引),从0开始
   数组元素的访问:a[i]

    3.初始化
       1>初始化方式
 

      int a[3] = {10, 9, 6};
    int a[3] = {10,9};
    int a[] = {11, 7, 6};
    int a[4] = {[1]=11,[0] = 7};


    2>常见错误
       

     int a[];//没有明确数组大小
     int[4] a;//写法错误
     int a[b];//必须是明确的数组大小
    a = {10, 11};//没有数据类型
    a[4] = {10,9,8,5};

二、数组的实例

#include <stdio.h>

int main()
{
    // 使用注意
    // 都是正确写法
    //int ages[5] = {10 , 11, 12, 67, 56};
    //int ages[5] = {10, 11};
    //int ages[5] = {[3] = 10, [4] = 11};
    //int ages[] = {10, 11, 14};
    
    // 错误写法
    // int ages[];
    
    // 错误写法
    /* 只能在定义数组的同时进行初始化
    int ages[5];
    ages = {10, 11, 12, 14};
    */
    
    // 正确写法
    // int ages['A'-50] = {10, 11, 12, 14, 16};
    //int size = sizeof(ages);
    //printf("%d\n", size);
    
    // 正确写法
    /*
    int count = 5;
    int ages[count];
    ages[0] = 10;
    ages[1] = 11;
    ages[2] = 18;
    */
    
    //printf();
    // 错误写法
    // 如果想再定义数组的同事进行初始化,数组元素个数必须是常量,或者不写
    //int ages[count] = {10, 11, 12};
    
    
    int ages[] = {10, 11, 12, 78};
    
    // 计算数组元素的个数
    int count = sizeof(ages)/sizeof(int);
    
    for (int i = 0; i<count; i++)
    {
        printf("ages[%d]=%d\n", i, ages[i]);
    }
    
    return 0;
}

// 数组的基本使用
void arrayUse()
{
    // 数组的定义格式: 类型 数组名[元素个数];
    int ages[5] = {19, 29, 28, 27, 26};
    // 19 19 28 27 26]
    ages[1] = 29;
    
    /*
     ages[0] = 19;
     ages[1] = 19;
     ages[2] = 28;
     ages[3] = 27;
     ages[4] = 26;
     */
    
    /*
     遍历:按顺序查看数组的每一个元素
     */
    for (int i = 0; i<5; i++)
    {
        printf("ages[%d]=%d\n", i, ages[i]);
    }
}

三、数组与函数

       数组作为函数参数,可以省略元素个数。 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组

#include <stdio.h>
void change(int array[])//改变数组元素值得函数
{
    //printf("array==%p\n", array);
    
    array[0] = 100;
}


int main()
{
    int ages[6] = {10, 11, 10, 11, 10, 11};
    
    printf("ages==%p\n", ages);//输出sge数组首元素地址
    
    change(ages);
    
    printf("%d\n", ages[0]);//输出改变后元素的值
    return 0;
}


四、二维数组

    1.定义
       二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。一个数组能表示一个班人的年龄,如果想表示很多班呢?什么是二维数组?int ages[3][10]; 三个班,每个班10个人,相当于3行10列,相当于装着3个一维数组。二维数组是一个特殊的一维数组:它的元素是一维数组。例如int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素。

      二维数组的表现形式:

      数组名[下标][下标]

    2.初始化

       1>分行给二维数组赋初值

           int a[3][4]  =  {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

       2>可以将所有数据写在一个花括号内,按数组的顺序对各元素赋初值

           int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

       3>可以对部分元素赋初值

           int  a[3][4] ={{1},{5},{9}};

           int a[3][4]={{1},{0,6},{0,0,11}};


       

五、二 维数组实例

/*
将一个二维数组行和列的元素互换,存到另一个二维数组中

*/

#include <stdio.h>
int main()
{
    int a[2][3] = {{1,2,3},{4,5,6}};
    int b[3][2],i,j;
    printf("array a:\n");
    for(i=0;i <= 1;i++)
    {
        for(j = 0;j<= 2; j++)
        {
            printf("%5d",a[i][j]);//将二维数组输出来,每个字符间空5个
            b[j][i] = a[i][j];//将二维数组行和列的元素互换
        }
        printf("\n");
    }
    printf("array b:\n");
    for(i = 0;i <= 2;i++)
    {
        for(j=0;j <= 1;j++)
        {
           printf("%5d",b[i][j]);//将二维数组输出来,每个字符间空5个
        }
        printf("\n");
    }
    return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值