一、数组
    什么是数组:变量的组合,是一种批量定义相同类型变量的方式
    定义:  类型名 数组名[数量];
            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. CSS3-animation实现走马灯效果

    动画animation 1.先定义动画: @keyframes 动画名称( from{} to{} ) 或者 @keyframes 动画名称( 0%{} 50%{} 100%{} ) 百分号指的是动画 ...

  2. jenkins +docker+python接口自动化之jenkins容器安装python3(二)

    前提是在docker下已经配置好jenkins容器了,是将python安装在jenkins容器下的 1.先看你的jenkins是否安装好 docker ps 2.以root权限进入jenkins容器: ...

  3. C语言所有的数据类型

    整型数据类型:char 1 字节 -128 到 127 或 0 到 255unsigned char 1 字节 0 到 255signed char 1 字节 -128 到 127int 2 或 4 ...

  4. C语言的所有函数

    auto 声明自动变量break 跳出当前循环case 开关语句分支char 声明字符型变量或函数返回值类型const 定义常量,如果一个变量被cost修饰,那么他的值就不能再被改变continue ...

  5. Dubbo Debug大全

    com.alibaba.dubbo.rpc.RpcException: No provider available from registry 120.25.85.89:2181 for servic ...

  6. python机器学习——SVM支持向量机

    背景与原理: 支持向量机是一种用来解决分类问题的算法,其原理大致可理解为:对于所有$n$维的数据点,我们希望能够找到一个$n$维的直线(平面,超平面),使得在这个超平面一侧的点属于同一类,另一侧的点属 ...

  7. oracle转义单引号

    --笔记开始: 每次从表中取数据,然后都要在excel中添加单引号,再粘到查询语句中进行查询比较麻烦. 所以能在查出的结果直接加上单引号是很省时间的 . 这里用到转义. tablename: ep: ...

  8. Treewidget 节点的遍历

    父节点的遍历 // Treewidget遍历操作 // 只遍历父节点 int nParentNodeCount = ui->treeWidget->topLevelItemCount(); ...

  9. Docker-compose安装Wordpress

    Docker-compose实战Wordpress 96 iXiAo9 2019.01.10 18:54 字数 82 阅读 105评论 0喜欢 0 Docker-compose实战Wordpress ...

  10. 12.15linux学习第十八天

    今天老刘讲了如同天书一般的隐藏章节,第23章使用OpenLDAP部署目录服务,难度太高了.第16章使用Squid部署代理缓存服务 章节概述: 本章首先介绍代理服务的原理以及作用,然后介绍Squid服务 ...