Sdut——PTA地信(个人学习记录)数组 题目:统计每个整数出现次数;杨辉三角形;计算平均值,统计大于平均值的整数个数;计算次对角线元素平均值;矩阵加法

数组:一组相同类型元素的集合,即一组数

数组本身就是指针

其存储数据可以是整型,实型,字符型和其他类型

在同一个数组中须是相同类型

须先定义后使用

一维数组的创建和初始化

数组的创建方式:

用[]

中括号里面为空表示不限定大小,如果初始化了,则根据初始化内容,确定数组大小

arr1中双引号为字符串,[b i t \0]其运行有多余\0,字符串默认填充\0结尾;

arr2中单引号为字符,[b i  t]其运行无多余\0,打印遇到\0才暂定,因为没找到结束符,而且还有空间,所以会出现乱码,

arr1长度大于arr2

整型数组int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }无/0

字符数组有/0

还会在求字符串长度有差异:arr1可求出字符串长度 ,字符串长度和数组长度不同

数组通过下标来访问,下标是从0开始,十个元素0~9没有[10]

数组的大小可以通过计算得到

一维数组在内存中的存储

一维数组在内存中是连续存放的!int类型函数一下占四个内存,char一个内存 

随着数组下标的增长,地址是由低到高变化的

数组名是数组首元素的地址(有两个例外) 

例外1:sizeof(数组名)- 数组名表示整个数组-计算的是整个数组的变量类型所占内存大小 单位是字节   strlen是函数求字符串长度,找\0之前出现的字符个数

例外2:&数组名-数组名表示整个数组-取出的是整个数组的地址

二维数组的创建和初始化

初始化①:三行四列

初始化②:{}就是一行

初始化③:行可以省,列不行(因为二维数组在内存中是连续存储的)

创建的同时给赋值

当数组中个数不够二维数组的要求是,为不完全初始化,默认后面(整型数组补零,字符数组补/0)

二维数组的使用

先打印第i行再打印第i行中的第j元素内容

在实现数组相加时,c语言中数组数组下标规定是从0开始,所以i就到

二维数组在内存中的存储

假想

*p是a的值,p是指向a的,*p++是(a)值增加,p++就是指向后面一位

二维数组的数组名表示:第一行第一个元素的地址

数组作为函数

“冒泡”排序——升序,

↑某次冒泡发现已经 有序可直接退出

数组传参的时候

本质传递的是地址,只不过形参接收形式不同

指针形式是传数组的首元素地址

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部