一、数组
    什么是数组:变量的组合,是一种批量定义相同类型变量的方式
    定义:  类型名 数组名[数量];
            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. nebula命令行无法查看配置信息

    版本为nebula2.0.1 正在部署集群,节点数比较多,直接在一个节点配置好配置文件,分发到其他节点, 为了减少后续修改配置文件时再为配置文件添加--local_config=true,所以直接加上 ...

  2. python 列表中随机抽取多个数

    方法一:[random.randint(0,100) for _ in range(2)]输出: [34, 44]方法二:list中随机去取K个数list=[1,2.3,......] random. ...

  3. SQL-运算

    dual表可以进行运算select * from dual; 算数运算 + - * /select 5 + 6 as aaa ,6 - 3 as bbb ,5 * 7 as ccc ,9/2 as d ...

  4. Git系列 -> git commit 报错 “Invalid syntax in configuration ini file.”

    git commit 报错 提示信息为 "Invalid syntax in configuration ini file." 解决办法: 方法一:使用-n or --no-ver ...

  5. sequelize的创建接口以及模糊查询

    第一步: 在routes里面复制index.js更改为xxx.js(例如arctile.js) res.json()返回的就是json文件 第二步: 在views里app.js引用路由 第三步:查找数 ...

  6. 解决CentOS 7.x虚拟机无法上网的问题

    参考地址:https://blog.csdn.net/weixin_43317914/article/details/124770393 1.关闭虚拟机 2.打开cmd,查看本机dns 3.打开虚拟机 ...

  7. UnsupportedOperationException异常

    看看下面的例子,这样输出什么呢? public class test { public static void main(String[] args) { String arr = "ab, ...

  8. github秒变vscode

    方法一:github.sth -> github1s.sth 方法二:github保持登录状态,然后是英文输入法,点击'.'就行

  9. 「AutoCAD2022」

    「AutoCAD2022」https://www.aliyundrive.com/s/rxktpNqtHC5点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速 ...

  10. java mysql截取所需数据

    mysql截取数据: 例:截取门铺名称,门铺名称长度不确定 {"进店日期":"2022-09-01","电话":"1******* ...