数组 C语言,c++语言数组

  数组 C语言,c++语言数组

  Yyds干货库存

  @[目录]

  一、一维数组的创建和初始化1。数组的创建数组是一组相同类型的元素。

  如何创建阵列:

  type _ t arr _ name[const _ n];//type_t是指数组的元素类型。//const_n是用于指定数组大小的常量表达式。由数组创建的实例:

  //Code 1 int arr 1[10];//Code 2 int count=10;int arr 2[count];//什么时候可以正常创建数组?//Code 3c har arr 3[10];float arr 4[1];double arr 5[20];注意:创建数组时,必须在[]中给出常数,而不是变量。

  2.数组的初始化。数组的初始化是指在创建数组时给数组的内容一些合理的初始值(初始化)。

  看看代码:

  int arr1[10]={ 1,2,3 };int arr2[]={ 1,2,3,4 };int arr3[5]={ 1,2,3,4,5 };char arr4[3]={ a ,98, c };char arr5[]={ a , b , c };char arr 6[]= abcdef ;当创建一个数组时,如果你不想指定数组的某个大小,你必须初始化它。数组中元素的数量是根据初始化的内容确定的。

  但是对于下面的代码,我们要区分如何分配内存。

  char arr 1[]= ABC ;char arr2[3]={a , b , c };3.一维数组的使用对于数组的使用,我们之前介绍过一个运算符:[],下标是指运算符。它实际上是数组访问的操作符。让我们看看代码:

  # include stdio . h int main(){ int arr[10]={ 0 };//数组初始化不完整//计数数组中的元素个数intsz=sizeof(arr)/sizeof(arr[0]);//给数组的内容赋值。使用下标访问数组,下标从0开始。因此:int I=0;for(I=0;i i) { printf(%d ,arr[I]);}返回0;}摘要:

  使用下标访问数组,下标从0开始。

  2.可以计算数组的大小。4.一维数组在内存中的存储接下来,我们将讨论数组在内存中的存储。

  看代码。

  # include stdio . h int main(){ int arr[10]={ 0 };int I=0;for(I=0;I sizeof(arr)/sizeof(arr[0]);i) { printf( arr[%d]=%p\n ,I,arr[I]);}返回0;}

  仔细看输出结果,我们知道随着数组下标的增加,元素的地址也在有规律的增加。

  可以得出结论,数组是连续存储在内存中的。

  二。二维数组1的创建和初始化。二维数组的创建//数组创建int arr[3][4];字符排列[3][5];双重逮捕[2][4];2.二维数组的创建//数组初始化int arr[3][4]={1,2,3,4 };int arr[3][4]={{1,2},{4,5 } };int arr[][4]={{2,3},{4,5 } };3.二维数组的创建二维数组的使用也是通过下标。

  看看代码:

  # include stdio . h int main(){ int arr[3][4]={ 0 };int I=0;for(I=0;I I){ int j=0;for(j=0;j j){ arr[I][j]=I * 4j;} } for(I=0;I I){ int j=0;for(j=0;j j ) { printf(%d ,arr[I][j]);} }返回0;}4.二维数组像一维数组一样存储在内存中。这里我们尝试打印二维数组的每个元素。

  # include stdio . h int main(){ int arr[3][4];int I=0;for(I=0;I I){ int j=0;for(j=0;j j ) { printf( arr[%d][%d]=%p\n ,I,j,arr[I][j]);} }返回0;}

  由此,我们可以分析出,其实二维数组在内存中是连续存储的。

  第二,数组越界。数组的下标有范围限制。

  数组的底部规则从0开始。如果输入中有n个元素,最后一个元素的下标是n-1。

  所以如果数组的下标小于0或者大于n-1,就说明数组越界了,超出了数组合法空间的访问。

  c本身不做数组下标的越界检查,编译器也不一定报错。但是编译器不报错,不代表程序就是正确的。所以程序员写代码的时候最好自己做越界检查。

  # include stdio . h int main(){ int arr[10]={ 1,2,3,4,5,6,7,8,9,10 };int I=0;for(I=0;i i ) { printf(%d\n ,arr[I]);//当I等于10时,} return 0被越界访问;}二维数组的行和列也可能越界。

  1.阵列的名称是什么?# include stdio . h int main(){ int arr[10]={ 1,2,3,4,5 };printf(%p\n ,arr);printf(%p\n ,arr[0]);printf(%d\n ,* arr);//输出结果返回0;}结论:

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

  如果数组名是第一个元素地址,那么:

  int arr[10]={ 0 };printf(%d\n ,sizeof(arr));为什么输出结果是:40?

  补充:

  Sizeof(数组名),计算整个数组的大小。Sizeof里面放了一个数组名,数组名代表整个数组。数组名,并取出数组的地址。数组名,表示整个数组。除了这两种情况1和2,所有的数组名都表示数组第一个元素的地址。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: