首页 > 系统相关 >Linux & 标准C语言学习 <DAY6>

Linux & 标准C语言学习 <DAY6>

时间:2023-03-06 09:33:05浏览次数:38  
标签:初始化 arr 下标 int C语言 学习 数组名 数组 Linux

一、数组     什么是数组:变量的组合,是一种批量定义相同类型变量的方式     定义:  类型名 数组名[数量];             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];     优点:可以根据实际情况来确定数组的长度,从而节约内存     缺点:初始化发生在编译期间,而可变长数组长度的确定发生在运行期间,因此可变长数组无法初始化
           

标签:初始化,arr,下标,int,C语言,学习,数组名,数组,Linux
From: https://www.cnblogs.com/phony/p/17182650.html

相关文章

  • linux 启动oracle
    1.切换oracle用户su-oracle2.查看oracle是否启动ps-ef|grepora_3.启动和关闭oraclesqlplus/assysdba--进入sqlplus界面SQL>startup--启动数据库实例SQ......
  • 数据库学习笔记
    数据库学习笔记1、基本知识与关系模型从思维的角度学习。第一讲初步认识数据库系统Table的构成和常用术语:表名、表标题、(格式)、表内容、(行/元组/记录row/tuple/r......
  • node学习笔记(四)--- 知识点归集
    1、利用node原生封装一个求文件hash的方法const{createHash}=require('crypto');const{createReadStream}=require('fs');constgetFileMd5=(filePath)=......
  • C语言数据类型笔记
    Unsigned如果一个字面量常数想要表达自己是unsigned,可以在后面加u或U255U用l或L表示long(long)*unsigned的初衷并非扩展数能表达的范围,而是为了做纯二进制运算,主要是......
  • Qt学习笔记 - 第一章 - 快速开始、信号与槽
    Qt学习笔记全系列传送门:【本章】Qt学习笔记-第一章-快速开始、信号与槽Qt学习笔记-第二章-添加图片、布局、界面切换目录1、Qt工程创建2、工程文件......
  • salesforce零基础学习(一百二十六) Picklist Value Set 优缺点和使用探讨
    本篇参考:https://help.salesforce.com/s/articleView?id=sf.fields_creating_global_picklists.htm&type=5当我们创建Picklist字段时,比如很多表很多字段都会用到同样的p......
  • linux 常用的150 个命令汇总
    1.线上查询及帮助manhelp2.文件和目录操作的命令ls cd find mkdir mv pwd renamerm rmdir touch tree basename dirname chattr lsattr file md5sum3.查看文件......
  • Python学习笔记(七)字符串操作
    一、数据类型转换%s字符串%d数值整数%f浮点数formatf表达式挖坑填坑法则1name='张三'2age=183height=180.545print('我的名字是%s'%name)6p......
  • Android学习-每日打卡APP-实现浏览功能
    接着写每日打卡App现在实现了浏览功能packagecom.example.clockappliction;importandroidx.appcompat.app.AppCompatActivity;importandroid.content.Intent;im......
  • redis缓存过期策略学习
    转自:http://jinguoxing.github.io/redis/2018/10/10/redis-EXPIRE/https://juejin.cn/post/70589185032559001671.过期字典在redis中维护了一个expires字典,里面保存了数......