零基础玩转C语言|数组-创新互联

文章目录
  • 前言
  • 一、一维数组
    • 1.1 一维数组的创建
    • 1.2 一维数组的初始化
    • 1.3 一维数组的使用
    • 1.4 一维数组在内存中的存储
  • 二、二维数组
    • 2.1 二维数组的创建
    • 2.2 二维数组的初始化
    • 2.3 二维数组的使用
    • 2.4 二维数组在内存中的存储
  • 三、数组越界
  • 四、总结

在港口等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都做网站 网站设计制作按需求定制制作,公司网站建设,企业网站建设,高端网站设计,营销型网站建设,成都外贸网站建设公司,港口网站建设费用合理。
前言

什么是数组——数组是一组相同类型元素的集合

一、一维数组 1.1 一维数组的创建

数组的创建方式:

type_name arr_name [count_value]
// type_name::数组元素的类型
// arr_name:数组名
// arr_name:数组元素的个数(可以省略)

数组创建的实例:

// 代码1
int arr1[10];

//代码2
char arr2[];

下面数组可以正常创建吗?
int count=10;
int arr3[count];
答案是:不可以。因为数组创建,在C99标准之前,[ ]中要给一个常量才可以,上述创建数组中,count是一个整型变量


1.2 一维数组的初始化

数组的初始化是指,在创建数组的同时给数组内容一些合理的初始值
代码实例:

  1. int arr1[3]={1,2,3} 创建一个名为arr1的数组,数组元素个数为3,元素分别为:1,2,3
  2. int arr2[ ]={4,5,6} 创建一个名为arr2的数组,创建时未指定数组元素个数,编译器会根据初始化的值,自动设置为3
  3. int arr3[10]={7,8,9} 这种初始化方式称为不完全指定,数组的总元素为10,arr3的前三个元素分别初始化为7,8,9,后面7个元素自动初始化为0

1.3 一维数组的使用

对于数组的使用,常用的操作符为:[ ] 下标引用操作符
代码示例:

# includeint main()
{int arr1[10]={1,2,3,4,5,6,7,8,9,0};
   int length=sizeof(arr)/sizeof(arr[0]); //计算数组元素个数
   int i=0;
   //输出数组的内容
   for (i=0;i  printf("%d",arr[i]);
   }
   return 0; 
}

1.4 一维数组在内存中的存储

接着我们来探讨一下数组在内存中的存储
我们输出数组每一个元素的地址,代码如下:

# includeint main()
{int arr[]={1,2,3,4};
   int length=sizeof(arr)/sizeof(arr[0]); //计算数组元素个数
   int i=0;
   //输出数组的内容
   for (i=0;i  printf("&arr[%d]=%p\n",i,&arr[i]);
   }
   return 0; 
}

结果如下:在这里插入图片描述
随之数组下标的增长,元素的地址也在有规律的地址,相邻两个元素之间的地址相差4个字节,这也正是存储一个整型变量需要的字节数。
因此我们得出结论:数组在内存中是连续存放的


二、二维数组 2.1 二维数组的创建

和一维数组创建类似

type_name arr_name [row_value] [column_value]
// type_name::数组元素的类型;
// arr_name:数组名
// row_value:二维数组行数(可以省略)
// column_value:二维数组列数(不可省略)

例如:int arr[2][3], char arr2[][4]


2.2 二维数组的初始化

int arr1[2][2]={{1,2},{3,4}} 完全初始化
int arr2[3][4]={{5,6,7},{3,4}} 不完全初始化,剩下元素自动补0


2.3 二维数组的使用

二维数组的使用也是通过下标的方式
代码实例:

# includeint main()
{int arr[][2]={{2,3},{1}};
   int i=0,j=0;
   for (i=0;i<2;i++)
   {  for (j=0;j<2;j++)
         printf("%d ",arr[i][j]);
   }
   return 0;
}

输出:2 3 1 0


2.4 二维数组在内存中的存储

我们输入上述arr[][2]数组的每一个元素的内存地址:
在这里插入图片描述

二维数组在内存中也是连续存储的


三、数组越界
  1. 数组的下标是有范围限制的。数组规定下标从0开始,如果有n个元素,那么最后一个元素的下标就是n-1。
  2. 所以数组的下标如果小于0,或是大于n-1,就是越界访问了,超出了数组合法空间的访问。
  3. C语言本身不会做数组下标越界的检查,编译器也不一定报错,但是编译器不保错,并不意味程序就是正确的。

四、总结

本文介绍了C语言数组的知识,数组就是一组同类型数据的集合。包括一维数组和多维数组,从数据的建立和使用。
好了,以上就是C语言数组的全部内容了,看到这里想必友友们对数组的理解又通透了点儿,对您有帮助的话不妨来个三连加关注支持一下,后期会持续更新C语言干货!

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:零基础玩转C语言|数组-创新互联
本文路径:http://hbruida.cn/article/dhoijg.html