C语言数组课件,c语言数组应用例题

  C语言数组课件,c语言数组应用例题

  目录

  一维数组

  二维数组

  第三,数组越界了

  四。阵列的名称是什么?

  第五,冒泡排序

  [前言]

  这个数组没有什么特别难理解的,所以很容易使用。这里我再补充一些容易出错的小知识点,简单易懂。

  一、一维数组的定义:数组是同一类型的元素的集合。

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

  //type_t:数组元素类型

  //arr_name:数组名

  //const_n:常量表达式,用于指定数组的大小。数组创建的错误演示:

  int const=10

  int arr[const];//注意,这样写是不对的。

  【敲黑板】:C99标准之前,可以在[]中给一个常数,不能用变量。C99以后,支持变长数组的概念。数组的大小可以是可变的,但要求编译器支持C99标准。但是很多编译器对C99的支持不够好,所以你一定知道我想说什么。

  注意,要特别注意字符数组:

  比如:

  char arr2[3]={a , b , c };

  //注意结尾没有\0

  sizeof(arr2) - 3

  乱码!

  【敲黑板】:注意strlen()和sizeof的对比。

  Strlen()是一个库函数,计算字符串的长度,只能作用于字符串。重点是字符串中是否有\0,计算字符串\0前的字符数;Zeof是一个运算符。sizeof用于计算变量占用的空间。任何类型都可以。它只关注空间大小,不考虑内存中是否有\0,单位是字节。

  总结:

  使用下标访问数组,下标从0开始;可以计算数组的大小。

  int arr[10];

  int SZ=sizeof(arr)/sizeof(arr[0]);//40/4==10

  [敲黑板]:

  一维数组在内存中连续存储;随着数组下标的增加,地址从低变到高。

  二维数组二维数组在数学上叫做矩阵。

  请注意,二维数组的初始化不同于一维数组的初始化:

  比如:

  int arr[][4];//正确(行可以省略)

  int arr[][];//错误(不得省略列)

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

  二维数组可以理解为一维数组的数组,二维数组也是连续存储在内存中的。如果省略列数,则不知道每行有多少个元素,也不知道第一行在哪里结束,因此不知道第二行应该放在第一行的哪里。

  第三,数组越界了

  数组的下标有范围限制。规定数组下标从0开始。如果数组有N个元素,那么最后一个元素的下标是N-1。因此,如果数组的下标小于0或大于N-1,则是超出数组合法空间的越界访问。

  c本身不检查数组下标越界,编译器也不一定报错,但是编译器不报错不代表程序正确。此外,二维数组的行和列可能超出界限。

  比如:

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

  for(int I=0;i=10我)

  {

  arr[I]=0;//当i==10时,为越界访问!

  }四。阵列的名称是什么?

  通常,数组名是第一个元素的地址,但有两种特殊情况:

  Zeof(数组名):计算整个数组的sizeof,此时的数组名代表整个数组;数组名:检索整个数组的地址,此时的数组名代表整个数组。除了上面两种情况,所有数组名都表示数组第一个元素的地址!

  第五,冒泡排序

  以升序为例,每次冒泡排序都是放最大的元素。

  到最后一道工序。

  void bubble_sort(int* arr,int sz)

  {

  int I=0;

  for(I=0;I SZ-1;I )//冒泡排序的遍数与元素个数有关。

  {

  int j=0;

  for(j=0;j SZ-I-1;J )//比较的对数每次旅行都不一样,都在变化。

  {

  If (arr[j] arr[j 1])//以升序为例

  {

  int temp=arr[j];

  arr[j]=arr[j 1];

  arr[j 1]=temp;

  }

  }

  }

  }

  安然无恙。

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