zoukankan      html  css  js  c++  java
  • C语言学习数组

    一.数组的定义

    类型 数组名[元素个数]

    int a[6];

    char b[24];

    double c[3];

    上面的几个类型,都占多少字节内存?

     

     

     • 元素数量必须是整数
    • C99之前:元素数量必须是编译时刻确定的字面量

    • 是一种容器(放东西的东西),特点是:
    • 其中所有的元素具有相同的数据类型;
    • 一旦创建,不能改变大小
    • *(数组中的元素在内存中是连续依次排列的)

    二.有效的下标范围
    • 编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元做读还是写

    • 一旦程序运行,越界的数组访问可能造成问题,导致程序崩溃

    • segmentation fault!
    • 但是也可能运气好,没造成严重的后果
    • 所以这是程序员的责任来保证程序只使⽤用有效的下标值:[0,数组的⼤大小-1]

    • 循环跟数组的关系

    实现一个执行10次的循环,通常是这么写:

    for(i=0;i<10;i++){

          ......

    }

    #include <stdio.h>
    #define num 10 
    int main()
    {
        int s[num];
        int i,sum=0;
        for(i=0;i<num;i++){
            printf("请输入第%d个学生成绩:",i+1);
            scanf("%d",&s[i]);
            sum +=s[i];
        }
        printf("平均分是%d
    ",sum/10);
        return 0;
     } 

    三.数组的初始化

    1.将数组中所有元素统一初始化为某个值,可以这么写:

    int a[10]={0}; //将数组中所有元素初始化为0

    2.如果是赋予不同的值,可以用逗号分隔开:

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

    3.还可以只给一部分赋值,那么其他元素将自动初始化为0;

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

    4.C99增加了一种新特性:指定初始化元素:

    int a[10]={[3]=3,  [5]=5, [8]=8};

    #include <stdio.h>
    
    int main()
    {
        int a[10] = {[3] = 3, [5] = 5, [8] = 8};
        int i;
    
        for (i = 0; i < 10; i++)
        {
            printf("%d
    ", a[i]);
        }
    
        printf("%d
    ", sizeof(a));
    
        return 0;
    }

  • 相关阅读:
    愚公oracle数据库同步工具
    外部服务的隔离及降级
    使用redis来实现分布式锁
    php 无限极栏目 Tree 树格式 层级显示 【列表记录按顺序缩进显示】
    腾讯地图添加多marker标注样式
    MIME 视频 , 文件下载与播放权限
    php json_encode 对浮点 精度 问题 解决
    phpexcel 导入 时间格式 和 数值格式 处理
    phpexcel写入追加已有的excel文件
    php 判断字符串是否可以转 浮点型
  • 原文地址:https://www.cnblogs.com/guoweilf/p/11546937.html
Copyright © 2011-2022 走看看