一、数组
    什么是数组:变量的组合,是一种批量定义相同类型变量的方式
    定义:  类型名 数组名[数量];
            int arr[5];
            注意:数组的长度一旦确定,无法改变
    使用:数组名[下标];
        下标:从0开始,范围:0~数量-1  
    遍历:把数组的数据从头到尾显示或访问
        一般与for循环配合,把循环变量i当做数组下标  
    初始化:
        类型名 数组名[数量] = {1,2,3,4,...};
        1、数组与变量一样,默认值随机,所以一般都要先初始化
        2、数组不能整体初始化,只能逐个初始化
            int arr[20]=0 false
        3、这种初始化的语法只能在定义数组时使用
        4、初始化数据过多,编译器会产生警告并丢弃
        5、初始化数据不足,编译器会自动补0
        6、初始化数据可以全部省略,只写大括号,相当于全部成员初始化为0
        7、如果有初始化数据,则可以省略数组数量,因为编译器会自动统计数据的个数,然后确定数组的数量
            计算数组的总字节:sizeof(arr)
            计算数组成员的字节数:sizeof(arr[0])
            计算数组长度的公式:
                sizeof(arr)/sizeof(arr[0])
   
二、数组越界问题
    为了程序的运行效率考虑,C语言不检查数组下标是否越界
    数据越界的后果:
        1、一切正常
        2、段错误(核心已转储)
        3、脏数据
三、二维数组
    一维数组相当于把变量排成一排,通过编号来访问
    二维数组相当于把变量排成一个矩阵,通过行号和列号访问
    二维数组在内存中依然是连续存储的
    定义:
        类型名 数组名[行数][列数];
        int arr[4][5];
        [0,0][0,1][0,2][0,3][0,4]
        [1,0][1,1][1,2][1,3][1,4]
        [2,0][2,1][2,2][2,3][2,4]
        [3,0][3,1][3,2][3,3][3,4]
    使用:数组名[行下标][列下标];
        行下标:0~行数-1
        行下标:0~列数-1
   
    遍历:一般需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列
        int arr[4][5];
        for(int i=0; i<4; i++)
        {  
            for(int j=0; j<5; j++)
            {
                printf("%d ",arr[i][j]);
            }
            printf("\n");
        }
    初始化:
    类型名 数组名[行数][列数]={{第一行},{第二行},...};
    注意:
        1、大括号内数据可以全部省略,那么就自动补0
        2、大括号数据和列数不省略,行数可以省略,编译器会自动计算行数
        3、不能省略二维数组的列数
四、变长数组
    定义数组时,使用变量作为数组的长度,这种数组称为变长数组
    特点:在代码编译期间数组的长度是不确定的,当执行到数组的定义语句时长度才最终确定下来,并且一旦确定长度也无法改变
        int n = 0;
        scanf("%d",&n);
        int arr[n];
    优点:可以根据实际情况来确定数组的长度,从而节约内存
    缺点:初始化发生在编译期间,而可变长数组长度的确定发生在运行期间,因此可变长数组无法初始化
       
   

Linux & 标准C语言学习 <DAY6>的更多相关文章

  1. Unix和Linux下C语言学习指南

    转自:http://www.linuxdiyf.com/viewarticle.php?id=174074 Unix和Linux下C语言学习指南 引言 尽管 C 语言问世已近 30 年,但它的魅力仍未 ...

  2. linux 下C语言学习路线

    UNIX/Linux下C语言的学习路线.一.工具篇“公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工 ...

  3. UNIX/Linux下C语言的学习路线

    一.工具篇 “公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具. 1.操作系统    在UNIX或 ...

  4. C语言学习008:标准错误

    在上一节中的数据文件中(C语言学习007:重定向标准输入和输出),如果文件中的数据包含非法数据,如何让程序显示一条错误的提示消息呢?就需要用到标准错误 #include <stdio.h> ...

  5. Linux下C语言编程基础学习记录

    VIM的基本使用  LINUX下C语言编程 用gcc命令编译运行C语言文件 预处理阶段:将*.c文件转化为*.i预处理过的C程序. 编译阶段:将*.i文件编译为汇编代码*.s文件. 汇编阶段:将*.s ...

  6. 实验四 Linux系统C语言开发环境学习

    项目 内容 这个作业属于哪个课程 Linux系统与应用 这个作业的要求在哪里 作业要求链接 学号-姓名 17041428-朱槐健 作业学习目标 1.Linux系统下C语言开发环境搭建 2.学习Linu ...

  7. 【C语言学习】《C Primer Plus》第1章 概览

    学习总结 1.C语言于1972年由贝尔实验室的Dennis Ritchie在与Ken Thompson一起设计UNIX操作系统的时候开发的.的的设计构想来源于Ken Thompson的B语言.Anyw ...

  8. LINUX下C语言编程基础

    实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...

  9. 郝斌老师C语言学习笔记(一)

    在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以“85”开头的很大的数字(此时该段内存中为一个垃圾数,为了避免出现较常 ...

  10. 【转】朱兆祺教你如何攻破C语言学习、笔试与机试的难点(连载)

    原文网址:http://bbs.elecfans.com/jishu_354666_1_1.html 再过1个月又是一年应届毕业生应聘的高峰期了,为了方便应届毕业生应聘,笔者将大学四年C语言知识及去年 ...

随机推荐

  1. java面经学习002

    2. Java都有哪些map,分别怎么实现的,具体讲 3. 除了LinkedHashMap,你还知道哪些有序map 4. ConcurrentHashMap讲一讲 5. 为什么要有线程池 6. 线程池 ...

  2. MAC使用Graphviz包报错 failed to execute PosixPath('dot')

    在使用LightGBM进行可视化时,用到了Graphviz包,在安装Graphviz包时遇到了以下问题. 错误描述: ExecutableNotFound: failed to execute Pos ...

  3. NOIP2015 pj

    达成成就!--尝试不看题解的情况下用cpp打完了一套NOIP pj 题目全部在luogu上-- P2669 金币 题目描述 国王将金币作为工资,发放给忠诚的骑士.第一天,骑士收到一枚金币:之后两天(第 ...

  4. Flutter基于Mac的环境配置

    1.下载Flutter SDK git clone https://github.com/flutter/flutter.git 2.配置Flutter镜像+Flutter环境变量 ( 先创建.bas ...

  5. SaaS、PaaS、IaaS的区别

    我们从SaaS.PaaS.IaaS的定义.工业应用以及具体案例几方面来介绍他们之间的区别 一.定义层面的区别 SaaS.PaaS.IaaS简单的说都属于云计算服务,也就是云计算+服务. 我们对于云计算 ...

  6. React++antd+ProComponents可编辑表格EditableProTable组件实现表单中的可编辑列表组件

    需求: 在新增&编辑表单中,共分三个表单模块,第二个模块设计为一个可编辑表格组件,其中可选下拉列表依赖外层第一个模块的某条数据值,提供新增.编辑.删除.按规定条件去重等功能,并在第三个模块中自 ...

  7. python播放音频文件

    可在nano或者gax上面使用(已测试过) 将mp3文件转换为wav文件 trans_mp3_to_wav.py from pydub import AudioSegment # 这里filepath ...

  8. vue表单校验限制输入数字后小数点两位(包括避开通过中文输入法的那些坑)

    <el-form-item label="海运运费系数"> <el-input v-model.trim="ruleForm.oceanFreightC ...

  9. Python中RSA的PKCS#1、PKCS#8,MD5加密

    一.Python-RSA RSA库只支持PKCS#1的密钥格式 需要安装第三方库rsa pip install rsa python-rsa官方地址:https://stuvel.eu/python- ...

  10. cp 备份文件命令

    cp -p system.sh ./bak2022/systecm.sh.bak_`date '+%Y%m%d'` (备份system.sh文件后缀以bak_年月日命令)cp -rf old copy ...