0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言数组是什么

汽车电子技术 来源:嵌入式悦翔园 作者: JamesBin 2023-02-17 14:29 次阅读

C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

一、一维数组

一维数组的定义

数据类型 数组名[常量表达式]

数组特点:[ ] :数组运算符,单目运算符,优先级(1),左结合,不能用( )

编译时分配连续内存

内存字节数=数组维数*
sizeof(元素数据类型)
数组名表示内存首地址,
是地址常量

二、数组的引用

int data[5];     
      data[5]=10;     //C语言对数组不作越界检查,使用时要 注意

数组必须先定义,后使用v只能逐个引用数组元素,不能一次引用整个数组v数组元素表示形式: 数组名[下标]其中:下标可以是常量或整型表达式。

int a[10];
           printf(“%d”,a);      
必须   for(j=0;j<10;j++)
                  printf(“%d\\t”,a[j]);
int a[5]={1,2,3,4,5}; 
 等价于:a[0]=1;  a[1]=2; a[2]=3; a[3]=4; a[4]=5;

说明:

数组不初始化,其元素值为随机数

对static数组元素不赋初值,系统会自动赋以0值

只给部分数组元素赋初值

当全部数组元素赋初值时,可不指定数组长度

static int a[5];
等价于:a[0]=0;  a[1]=0; a[2]=0; a[3]=0; a[4]=0;

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

编译系统根据初值个数确定数组维数

三、程序举例

用冒泡法对10个数排序

算法分析:如果有n个数,则要进行n-1趟比较。
在第1趟比较中要进行n-1次相邻元素的两两比较,
在第j趟比较中要进行n-j次两两比较。
比较的顺序从前往后,经过一趟比较后,
将最值沉底(换到最后一个元素位置),
最大值沉底为升序,最小值沉底为降序。

排序过程:

(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上

(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置.

(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束

#include
int main()
{
  int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};

  //排序
  for(i=1;i<10;i++)    //外循环控制排序趟数,n个数排n-1趟
  {
    for(j=0;j<10-1;j++)      //内循环每趟比较的次数,第j趟比较n-i次
    {
      if(a[j]>a[j+1])     //相邻元素比较,逆序则交换
      {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
      }
    }
  }

  printf("排序后的结果是:\\n");
  for(i=0;i<10;i++)
  {
    printf("%d  ",a[i]);
  }
  printf("\\n");

  return 0;
}

四、多维数组

定义方式:
数据类型数组名[常量表达式][常量表达式];

例  int a[3][4];  
     float b[2][5];
     int c[2][3][4];
     int a[3,4];           (x)

数组元素的存放顺序l原因:内存是一维的

二维数组:按行序优先

多维数组:最右下标变化最快

图片

五、二维数组

二维数组a是由3个元素组成,每个元素a[i]由包含4个元素的一维数组组成

图片

图片

二维数组元素的引用

形式:数组名[下标][下标]

将二维数组行列元素互换,存到另一个数组中

#include 
main()
{   int a[2][3]={{1,2,3},{4,5,6}};
     int b[3][2],i,j;
    printf("array a:\\n");
    for(i=0;i<=1;i++)
    {   for(j=0;j<=2;j++)
  {   printf("%5d",a[i][j]);
      b[j][i]=a[i][j];
  }
  printf("\\n");
    }

求二维数组中最大元素值及其行列号

#include 
main()
{  int a[3][4]={{1,2,3,4},
                        {9,8,7,6},
                        {-10,10,-5,2}};
    int i,j,row=0,colum=0,max;
    max=a[0][0];
    for(i=0;i<=2;i++)
       for(j=0;j<=3;j++)
           if(a[i][j]>max)
    {  max=a[i][j];
       row=i;
       colum=j;
    }
    printf("max=%d,row=%d, \\
colum=%d\\n",max,row,colum);
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    C语言数组详解

    介绍C语言数组的知识点。
    的头像 发表于 05-19 10:15 5999次阅读

    C语言数组和指针的区别

    大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是C语言数组和指针的区别,希望能对你有所帮助。
    发表于 07-11 12:40 278次阅读
    C<b class='flag-5'>语言</b><b class='flag-5'>数组</b>和指针的区别

    单片机以太网小工具:html文件转化为C语言数组

    最近在弄LwIP,发现要把HTML文件转化为C语言数组,比较麻烦,就自己写了个小程序。 现在拿来与坛友们分享。
    发表于 04-24 15:26

    C语言数组格式介绍

    C语言数组的格式
    发表于 12-17 07:40

    c语言-数组

    = "abcde";char book[][80]={"计算机应用基础","C语言","C++程序设计","
    发表于 04-07 09:16

    C语言数组类型有哪些?

    C语言数组类型有哪些?
    发表于 10-15 09:06

    通俗易懂关于C语言数组与指针的讲解

      在嵌入式培训班C语言实训过程中,我发现,讲数组学生们很容易理解,但是一旦涉及到指针,学生们开始懵了。对于他们来说,指针很难,这是因为很多学生没有系统的学习过C
    发表于 12-15 09:06

    C语言数组操作

    fun1(char *ptr){ ptr[6]= 1; ptr[5]= 2; ptr[4]= 3; *ptr++= 5; *ptr++= 6; *ptr= 7;}main(void){char i;char data[10] = {11,12,13,14,15,16,17,18,19,20};fun1(&data[2]);for(i = 0 ; i
    发表于 04-25 15:13

    C51语言数组课程课件

    C51语言数组课程课件:数组是一种构造类型的数据,通常用来处理具有相同属性的一批数据。本章主要介绍一维数组、二维数组、多维
    发表于 06-12 23:45 53次下载

    C语言数组详解

    上述的语句把数组中第五个元素的值赋为 50.0。所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。以下是上面所讨论的
    的头像 发表于 09-25 15:43 1.5w次阅读
    C<b class='flag-5'>语言</b><b class='flag-5'>数组</b>详解

    C语言数组的学习教程说明

    同样我们在程序中也需要容器,只不过该容器有点特殊,它在程序中是一块连续的,大小固定并且里面的数据类型一致的内存空间,它还有个好听的名字叫数组。可以将数组理解为大小固定,所放物品为同类的一个购物袋,在该购物袋中的物品是按一定顺序放置的。
    发表于 07-29 08:00 0次下载
    C<b class='flag-5'>语言</b><b class='flag-5'>数组</b>的学习教程说明

    C语言_数组的查找、替换、排序、拼接

    这篇文章主要是总结C语言的位运算几个实战例子,接着介绍数组的基本定义用法、数组排序、插入、拼接、删除、字符串查找替换等。
    的头像 发表于 08-14 09:48 2137次阅读

    C语言-数组

    C语言数组是一个同类型数据的集合,主要用来存储一堆同类型的数据。
    的头像 发表于 08-14 09:59 1065次阅读

    C语言数组元素的指针

    C语言调用函数时虚实结合的方法都是采用“值传递”方式,当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参数时。 由于数组名代表的是数组元素地址,因此传递的值是地址,所
    的头像 发表于 03-10 14:45 583次阅读

    C 语言数组的基本结构

    数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考。目前有以下18道题目。 数组求和 求数组的最大值和最小值 求
    的头像 发表于 06-22 10:56 385次阅读