c语言一维数组逆序输出_深入浅出C语言一维数组

C语言的数组就是一些列具有相同类型(一些弱类型检查的语言比如python无需类型相同)的数据的集合,这些数据在内存中依次挨着存放,彼此之间没有缝隙。要将数据存储至数组,必须为之分配对应的存储空间。

数组的定义:

比如存储整型数据的数组如下:

int temp[8]={0}; //此种声明方式申请的是栈空间,在函数体结束时由系统自动回收。

而int* temp=new int[8]; //此种方式申请的是堆空间,由程序员自己释放管理temp这一块内存

上面两行代码从功能上可以说是等价的,都是为我们分配了一块8*4字节的内存,并取名叫temp。我们把这样的一组数据的集合称为数组,而数组中的每一个数据被称为数组元素,比如temp[2],所包含的数据元素的个数称之为数组长度,例如temp其数组长度为8。数组中的每一个元素的都有唯一的编号,从下标0开始(重点:不是我们熟知的1,一定要记住),访问数组元素通过编号访问即可,比如访问temp的第2个元素如下:

temp[1]

接下来我们存储一些数据(10,20,40,80,100,120,160,200)至temp,赋值语句如下:

temp[0]=10;
temp[1]=20;
temp[2]=40;
temp[3]=80;
temp[4]=100;
temp[5]=120;
temp[6]=160;
temp[7]=200;

这里的0、1、2、3、4、5、6、7就是数组下标,temp[0]、temp[1]、temp[3]...... 就是数组元素。

在工作过程中,我们通常会遇到为指定一维数组循环赋值的情况,下面以temp为例采用for循环赋值:

#include <stdio.h>
int main(){
  int temp[8]={0};//初始化,防止出现脏数据
  int index=0;
  for(index=0;index<8;index++){
       temp[index]=index*2;//赋值操作
  }
  //循环打印数组元素值
  for(index=0;index < 8;index++){
    printf("%d",temp[index]);
  }
  return 0;
}
输出结果为:0 2 4 6 8 10 12 14 16。
说明:变量index既为数组下标,也为for循环结束条件。因为数组的长度为8,因此我们for循环的条件不能超过
8。

有时候我们也需要与用户交互(让用户输入数据至数组),让用户输入8个数据至temp的代码如下:

#include <stdio.h>
int main(){
   int temp[8]={0};//初始化,防止出现脏数据
  int index=0;
  printf("input datan");
  for(index=0;index<8;index++){
    scanf("%d", &temp[i]);
  }
   //循环打印数组元素值
  for(index=0;index < 8;index++){
    printf("%d",temp[index]);
  }
  return 0;
}
运行结果:
1 4 5 8 9 8 8  9(输入)
1 4 5 8 9 8 8  9(输出)
说明:scanf() 函数读取数据时需要一个地址,而temp[index]表示数组元素的值,在其前面加一个&表示取
地址。

综上所述,一维数组通用的定义方式为:

dateType  arrayName[size];
dateType表示数据类型,可以为char double int float 自定义数据结构等
arrayName为数组名,size为数组长度。
访问数组元素时,下标的取值范围为 0 ≤ index < size,过大或过小都会越界,导致数组溢出(一定要注意)。

数组内存是连续的,数组元素之间是相互挨着的,彼此之间没有一点点缝隙。数组内存的连续性为数据拷贝带来了方便,在接下来的文章中会讲到,敬请关注。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页

打赏

Gistie

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者