c语言数组的使用,c语言数组最大值

  c语言数组的使用,c语言数组最大值

  Yyds干货库存

  一:一维数组

  (1).数组的创建

  定义:数组是相同类型元素的集合。

  * * * * *创建方法:(重要)

  type _ t arr _ name[const _ n];

  //type_t是索引组的元素类型。

  //const_n是用于指定数组大小的常量表达式。

  (注意:数组名是数组第一个元素的地址)

  比如:

  int arr[8];//表示对数组中的元素进行整形,arr表示数组名,其中放置了8个元素。

  float arr 3[2 3];//2 ^ 3是常量表达式。

  double arr 4[5]=10;//浮点数不能准确地保存在内存中

  int arr 5[n];//只有C99语法支持这种将变量放入[]的方式。VS2019不支持变长数组(数组的大小是可变的)。平时不要这样。

  (2)数组的初始化(在创建数组的基础上给数组一些合理的初始值)

  答:塑造阵列

  1.完成初始化:Intarr [10]={1,2,3,4,5,6,7,8,9,10 };//像这样给出的初始值的个数与数组大小相同

  2.初始化不完整:Intarr [10]={1,2,3,4 };//像这样,只有部分元素赋值,其余默认为0

  3.int arr[]={ 1,2,3,4 };//如果没有像这样的指定大小,会根据初始化的内容确定其个数相当于int arr[4]={1,2,3,4 };

  字符数组:

  答:1。char ch1[3]={b , I , t}

  2.char ch2[5]={b , I , t}

  3.char ch3[]={b , I , t };默认3个字符

  b:字符串形式(字符串带有一个\0)

  char ch1[5]= bit ;//b i t \0 0 5元素

  char CH2[]= bit ;//b i t \0 4个元素

  注意:数组长度和字符串长度是两回事。

  当长度由strlen确定时,ch1是3,3,ch2也是3。

  (3).一维数组的使用

  下标引用运算符[]用于数组的使用。它实际上是数组访问的操作符。

  注意:使用下表访问数组。

  数组下面的表都是从0开始的。

  访问数组时,[]可以是变量,数组创建时必须是常量。

  可以计算数组的大小。

  int arr[10]

  int SZ=sizeof(arr)/sizeof(arr[0])

  例如:arr[4]=5;//将数组中的数字赋给下表4到5

  #包含stdio.h

  int main()

  {

  int arr[10]={ 0 };//初始化不完整

  arr[4]=5;

  printf(%d\n ,arr[4]);

  返回0;

  }

  //output: 5 # includesdio.h

  int main()

  {

  int arr[10]={ 0 };

  arr[4]=7;

  int SZ=sizeof(arr)/sizeof(arr[0]);//计算数组的大小

  int I=0;

  for(I=0;我我)

  {

  printf(%d ,arr[I]);//打印

  }

  返回0;

  }

  //输出:0 000 7 000 000

  (4).一维数组在内存中的存储

  接下来,让我们讨论数组在内存中的存储。

  一个字节可以给一个地址,一个整数占用4个字节。

  因此,一维数组是连续存储在内存中的。

  随着数组下标的增加,地址由低变高。

  二维数组

  1.创建二维数组(数组前面的[]表示行,数组后面的[]表示列)

  int arr[3][4];//塑造三行四列

  字符排列[3][4];//三行四列字符

  2.二维数组的初始化()

  完成初始化:

  初始化不完整:int arr1[3][4]={1,2,3,4,5 };//5后跟0

  注意这个形式:int arr2[3][4]={{1,2},{3,4},{5,6 } };

  注意:如果数组被初始化,行可以省略,但是列不能省略。

  int arr[][4]={{1,2},{3,4},{5,6 } };//初始化可以确定几行。多少嵌套{}表示有多少行。

  3.二维数组的使用

  访问数组时,类似于一维数组,行从0开始,列从0开始。

  #包含stdio.h

  int main()

  {

  int arr[][4]={{1,2},{3,4},{5,6 } };

  int I=0;

  int j=0;

  for(I=0;我我)

  {

  for(j=0;j j)

  {

  printf(%d ,arr[I][j]);

  }

  printf( \ n );

  }

  返回0;

  }

  //1 2 0 0

  //3 4 0 0

  //5 6 0 0

  注意:二维数组的数组名表示第一个元素的地址,二维数组的第一个元素是第一行。

  4.二维数组在内存中的存储

  就像一维数组一样,先打印地址,得到每个元素的地址。

  从图中可以看出,前四个地址是逐渐递增4的,第四个地址和第五个地址之差也是4。5%.

  得出二维数组也是连续存储在内存中的结论。

  一行内部连续,另一行也连续。

  三。作为函数参数的数组

  先举个例子:把一组降序的数字做成升序的数字如:9,8,7,6,5,4,3,2,1,0。

  //冒泡排序

  #包含stdio.h

  VoidBubble _ Sort (Intarr [],Intsz)//参数arr本质上是一个指针。

  {

  int I=0;//一定要多走几趟。

  for(I=0;I SZ-1;我)

  {

  int j=0;//一趟做几次交流。

  for(j=0;j SZ-1-I;j)

  {

  if(arr[j] arr[j 1])

  {

  int tmp=arr[j];

  arr[j]=arr[j 1];

  arr[j 1]=tmp;

  }

  }

  }

  }

  int main()

  {

  int arr[]={9,8,7,6,5,4,3,2,1,0 };

  int SZ=sizeof(arr)/sizeof(arr[0]);//计算数组中的元素个数,不能放在bubble_sort函数中

  bubble_sort(arr,SZ);//当数组作为参数传递时,传递数组的第一个元素的地址。

  返回0;

  }

  //但是当我们给出一组升序的数字时,就会毫无理由的浪费效率。因此

  //在函数中

  VoidBubble _ Sort (Intarr [],Intsz)//参数arr本质上是一个指针。

  {

  int I=0;//一定要多走几趟。

  flag=1;

  for(I=0;I SZ-1;我)

  {

  int j=0;//一趟做几次交流。

  for(j=0;j SZ-1-I;j)

  {

  if(arr[j] arr[j 1])

  {

  int tmp=arr[j];

  arr[j]=arr[j 1];

  arr[j 1]=tmp;

  flag=0;

  }

  }

  如果(标志==0)

  {

  打破;

  }

  }

  }

  当一个数组作为参数传递时,它的元素个数是无法在传递过去参数的数组的函数内部计算的,所以我们一般在main函数中计算。

  注意:数组名是什么?

  数组名是数组第一个元素的地址。

  但是有两个例外:

  1.sizeof(数组名)

  此时的数组名代表整个数组,计算整个数组的大小。单位是字节。

  2.数组名

  这里的数组名代表整个数组,检索的是整个数组的地址。

  在图中,我们可以看到地址在三种不同的情况下是相同的。

  首先,后两个取第一个元素的地址没问题,但是从上面的特例可知,第一个应该是(整个)数组的地址。为什么?

  实际上,数组的地址就是第一个元素的地址。虽然价值观相同,但意义不同。

  Arr获取整个地址,打印时只显示第一个元素的地址。

  加1时,前两者之差为40,后两者之差为4(地址形式为十六进制)。

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行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算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: