数组的初步认识

数组跟变量不一样  变量只能储存一个数据 如一个字符  而数组能储存多个数据  (所以字符串是存储在数组中的)         注意数组中元素类型要相同

 一维数组创建

一维数组的创建 例子如下     int   name[5]

一维数组的初始化

其中一维数组中[]也可以省略  如int   arr[]={1,2,3,4}    []中默认里面为4   

一维数组也是有类型的   跟变量不一样  变量是字符类型  浮点数类型  整数类型 等   而一维数组是除了数据类型 还有[]  ,如下

 数组可以跟变量一样不初始化 但是后面要跟变量一样都需要赋值  否则会产生bug (运行错误)   之所以要知道这个 因为别人写代码时可能会这样 (要看懂别人写的代码) , 而我们自己写代码无论是变量还是数字都要初始化 这是个很好的编程习惯 ,自己要习惯。

 一维数组的使用(一维数组下标)

对于数组的赋值我们要用到循环  切不可直接将其arr[10]={某些具体数} 因为除去创建数组时arr[10]是整个数组   下面的arr[某个值]都是其中的某个元素 所以并不能直接将这些数赋值到数组中  需要一个一个来将我们要输入的数赋值到其中的一个一个元素中 就要用到循环语句去赋值 

 数组赋值要用到循环语句(目前学的太少 只有循环语句赋值这个方法  ,之后学到指针可能会有新的赋值方法)

   

 这次又学到了一个新的操作符  然后如果你想用到数组中的元素  你就可以用数组名[] ,如arr[4], 4指的是下标,且arr[]只能返回出一个元素的值 也就是说[]里面只能有一个下标 

 而在下图是对于数组的输入和输出

浅谈一维数组在内存中的存储

 计算机中的数据 都会放到内存中进行处理  并且内存中的每一个字节单位都会被编号(给地址  这个部分跟指针有关)  其中在创建一维数组时会在内存中申请一片空间  如一个 int[5]会申请一个20字节的空间  其中每四字节里有一个整数  并且给其一个下标(下标是数组在申请内存后添加的  是数组特有的) 并且每次执行时数组申请的内存位置都不一样 如下图所示 

%p是一个新学的占位符 是关于地址的占位符   用&能求地址(后期指针会牵涉到地址这类 这里浅谈)

sizeof计算一维数组 

sizeof()是一个操作符  返回的值是size_t(整数)形式 (其中对应占位符形式是%zd)  其中单位是字节(内存的基本单位);  内存最小单位是比特           一个比特放一个0或者1                                (因为数据是以二进制形式储存) 一个字节含有八个比特   

其中arr是整个数组   arr[0]是数组中第一个元素 。

二维数组的概念

二维数组的创建

 

 二维数组的初始化

初始化省略的情况分类 

二维数组的使用(二维数组的下标)

 

 以上就是二维数组的下标介绍

 这是二维数组的输入和输出

二维数组在内存中的存储 

 由这可知  对于二维数组在内存中的占用情况   并不是上述的长方形 ,二维数组用长方形形状只是为了我们更好地理解,真实占用情况是跟一维数组一样都是一条长方格 

 二维数组跟一维数组的元素都是在内存中连续存放  甚至三维更高维数组的元素都是连续存放    

当设置了一个arr为二维数组时   int   arr[3][5] ={0}    arr[1]就是其中的一维数组的数组名 

 了解了这些更有利于学习指针

 变长数组

 其中由于[]中是变量,所以不能初始化 只能强行在后面将其赋值  (这是强制的)而对于正常的来说都是可以初始化 (初始化是个良好的编程习惯)

只是现在变长数组在vs上不支持使用 vs不支持在[]上填入变量  (好多编译器都不支持变长数组)做题网站还可以使用这个(因为其带着gcc编译器)

此方法相比我们平时方法  更加灵活更容易变化去操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值