广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言数组是什么意思
  • 552
分享到

C语言数组是什么意思

2023-06-22 08:06:41 552人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关C语言数组是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是数组数组(Array)是一种用来存储同一种类型的集合,是一种有序的线性结构表。并且数组元素的地址是连续的。数组最大

这篇文章给大家分享的是有关C语言数组是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

什么是数组

数组(Array)是一种用来存储同一种类型的集合,是一种有序的线性结构表。并且数组元素的地址是连续的。

C语言数组是什么意思

数组最大的优点就是支持随机访问,当想访问数组的某个数时,只需要找到数组的对应下标就可以直接找到该数组对应元素。但是数组也有相应的缺点,那就是数组的元素个数和数组空间大小在创建时就已经被固定死了,如果数组的空间没有使用完也会造成空间浪费,并且因为数组的地址是连续的,这本应该是一个优点的,但是这导致数组在进行删除或增加元素时需要O(n)才能完成。

数组的下标

数组下标是从0开始的,假设,访问arr[5]元素时,访问的是数组的第6个元素,访问arr[0]时,访问的是数组的第一个元素。

一维数组

一维数组创建

一维数组是常见的数组,创建方法是:数据类型 + 数组名 [ 元素个数 ];

int arr[10];

C99的标准之前,当数组在创建时,方括号内的数组元素个数只能是常量,使用的常量也必须是真正意义上的常量,比如用const修饰的变量有了常属性,但不是真正意义的常量,而由define定义的常量可以用来做数组元素个数。而C99之后数字方括号内的元素可以使用变量,而使用变量的做数组元素个数的数组,叫做变长数组。

一维数组初始化

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//整形数组int arr[] = {0}//不指定大小但必须初始化char ch[10] = {'1','2','3'};//字符数组char str[10] = "abcde";//字符串数组

一维数组的赋值

用循环变量访问数组下标,给数组进行赋值。%s对应的是输入一个字符串,需要提供一个字符数组来存储,数组名是一个地址,所以不用加&取地址。

int arr[10] = {0};for(int i = 0;i < 10;i++){    scanf("%d",&arr[i];} char str[10] = {0};scanf("%s",str);//字符串赋值可以不取地址和循环

一维数组在内存的存储方式

一维数组的元素地址是连续的,也就是元素的地址一个紧挨着一个。地址在内存是以二进制进行存储的,但是如果以二进制来展示的话就会非常的长而且也未必好理解,所以就由十六进制来进行展示。(下图)观察下图可发现,地址的是由低到高随着下标增长而增长的,有规律的递增,且每个数组元素地址都相差了四个字节,相差的四个字节是一个int整形的空间大小。

C语言数组是什么意思

二维数组

二维数组在我们的逻辑概念中可以是一个矩阵,但在内存中与一维数组一样是一个连续的地址空间。通常我们将二维数组的第一个方括号看做行,第二个方括号看做是列。

C语言数组是什么意思

二维数组的创建和初始化

二维数组与一维数组只是多加了一个方括号。数据类型 + 数组名[元素个数][元素个数];

int arr[3][3] = {1,2,3,4};//4自动存到arr[1][0]的位置int arr[3][3] = {{1,2,3},                 {4,5,6},                 {7,8,9}};//一个大括号代表一行,每个大括号以逗号隔开int arr[][3] = {0};//二维数组可以不初始化行,但必须初始化列

二维数组的赋值

给二维数组赋值,与一维数组一样都需要循环来搞定,但是二维数组需要在一维数组的循环基础上再嵌套一层循环。

int arr[3][3] = {0};for(int i = 0;i < 3;i++){    for(int j = 0;j < 3;j++)    {        scanf("%d",&arr[i][j]);//i访问行,j访问列    }}

数组越界

数组的下标范围是有限的,因为数组的下标是由0开始的,所以数组能访问的的下标就是数组元素个数减一个(N-1),当访问了不属于数组元素地址范围的空间,就叫做数组越界。假设一个arr[10]的数组,当访问下标时大于等于10的时候,就会导致数组向后溢出,也叫下溢出,相对的,当数组向数组第一个元素的前面越界访问时,也就是下标小于0,就叫上溢出,越界访问是非常危险的一个操作,因为有的编译器没有检查数组是否越界的功能,所以,当程序员在写代码所以数组时,要非常注意数组是否存在越界问题。二维数组的行和列也同样

C语言数组是什么意思

C语言数组是什么意思

 数组名

数组名是指向数组首元素地址的指针,即下标为0的元素的地址的指针。上面说,由于数组的地址是连续的,所以当找到数组的首元素就可以找到数组的其他成员。如果用sizeof(数组名),这里的数组名代表的是整个数组,计算的是整个数组的大小。再除以sizeof(下标为0的地址),就可以得到数组的元素个数。

C语言数组是什么意思

 数组的传参方式

当要将数组作为函数参数进行传参时,需要在函数的传参位置放一个数组名,形参部分就会接收到一个数组的首元素地址的指针,而接收这个指针就也需要同类型的指针。在形参部分,数组可以有两种形式表示,一种是以数组的形式,一种是以指针的形式,两种方式都可以对数组进行传参。

void bubble_sort(int arr[])void bubble_sort(int* arr)

当数组在传参之后,函数部分是不能计算数组的元素个数的。因为形参接收的只是一个数组的首元素地址的指针,而不是整个数组,计算数组的时候也只是计算了数组的首元素地址的大小,然后再除以首元素地址的大小,所以理所当然的得到一个1。所以,当数组需要传参,并且还需要用到数组的元素个数时,要先计算好数组元素个数,将计算好的元素个数和数组一起传参。

C语言数组是什么意思

感谢各位的阅读!关于“C语言数组是什么意思”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: C语言数组是什么意思

本文链接: https://www.lsjlt.com/news/303531.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言数组是什么意思
    这篇文章给大家分享的是有关C语言数组是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是数组数组(Array)是一种用来存储同一种类型的集合,是一种有序的线性结构表。并且数组元素的地址是连续的。数组最大...
    99+
    2023-06-22
  • c语言中ftell函数是什么意思
    本篇内容介绍了“c语言中ftell函数是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C语言函数ftell用于获取文件位置指针当前位...
    99+
    2023-06-25
  • c语言中realloc函数是什么意思
    这篇文章主要讲解了“c语言中realloc函数是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言中realloc函数是什么意思”吧!判断当前指针是否有足够的连续空间。如果足够,扩...
    99+
    2023-06-25
  • c语言中node是什么意思
    在C语言中,node是用于定义链表结点的名称,通常在数据结构中用作结点的类型名,语法为“struct Node{...};”;结构和类在定义出名称以后,直接用该名称就可以定义对象,C语言中还存在“Node * a”和“Node* &...
    99+
    2022-07-06
    C语言
  • c语言中case是什么意思
    本教程操作环境:windows7系统、c99、Dell G3电脑。case中文是什么意思作名词意思是例子;情况;案例;(辩论或诉讼)论据;箱。作动词意思是装箱;踩点;仔细检查。c语言中的case在c语言中,case的意思为“情况”、“案例”...
    99+
    2022-11-23
    C语言
  • c语言中extern是什么意思
    本篇内容主要讲解“c语言中extern是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c语言中extern是什么意思”吧!如果一个变量使用关键词extern,变量进行外部变量声明,则表示...
    99+
    2023-06-25
  • c语言中sizeof是什么意思
    本篇内容介绍了“c语言中sizeof是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sizeof()内部表达式不参与真实运算,编译时...
    99+
    2023-06-25
  • c语言中undeclared identifier是什么意思
    在C语言中,"undeclared identifier"是指在使用一个变量、函数或其他标识符时,编译器无法找到该标识符的声明。这通...
    99+
    2023-08-25
    c语言
  • c语言中的0x是什么意思
    c语言中的0x是什么意思,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。   c语言0x是什么意思   C语言中对变量赋值0x是以十六进...
    99+
    2022-10-19
  • sql语言是什么意思
    这篇文章主要介绍了sql语言是什么意思,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。sql语言通常称为结构化查询语言,是一种特殊目的的编程语言,...
    99+
    2022-10-18
  • css语言是什么意思
    本教程操作环境:Windows10系统、css3版、DELL G3电脑css语言是什么意思?层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的...
    99+
    2023-05-14
    css
  • c语言中预处理器是什么意思
    这篇文章主要介绍“c语言中预处理器是什么意思”,在日常操作中,相信很多人在c语言中预处理器是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言中预处理器是什么意思”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-25
  • go语言中函数是什么意思
    在go语言中,函数是组织好的、可重复使用的、用来实现单一具体或相关联功能的代码段(块);其主要目的是提高应用的模块性和代码的重复利用率,更好的管理代码,模块化开发。函数通常使用参数和返回值,与调用者交互数据;参数给函数传递数据,返回值,函数...
    99+
    2023-05-14
    函数 Golang Go go语言
  • C语言中#和##表示什么意思
    这篇文章主要讲解了“C语言中#和##表示什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中#和##表示什么意思”吧!1.#先做一个小铺垫。C语言中允许把一个字符串拆成2个字符串。...
    99+
    2023-07-05
  • c语言找不到标识符是什么意思
    在C语言中,当编译器提示"找不到标识符"的错误时,意味着编译器无法识别或找不到对应的标识符(变量、函数、类型等)...
    99+
    2023-08-08
    c语言
  • C语言中位段与枚举是什么意思
    这篇文章将为大家详细讲解有关C语言中位段与枚举是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.什么是位段? 位段的声明和结构是类似的,有两个不同: ①位段的成员必须是 in...
    99+
    2023-06-29
  • C语言的动态内存管理是什么意思
    这篇文章将为大家详细讲解有关C语言的动态内存管理是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、动态内存分配(1)用malloc类的函数分配内存;(2)用这些内存支持应用程序;(3)用free...
    99+
    2023-06-29
  • python语言中type是什么意思
    在Python语言中,`type`是一个内置函数,用来获取一个对象的类型信息。它通常以`type(object)`的形式调用,其中`...
    99+
    2023-09-22
    python
  • php语言中hr是什么意思
    本教程操作环境:windows7系统、PHP7.1&&HTML5版、DELL G3电脑hr的意思为“水平线”,是一个定义水平线分隔的html标签。hr标签的表现形式为一条横线,可以在视觉上将文档分隔成两个部分。php语言中输...
    99+
    2019-01-27
    php hr
  • go语言中str是什么意思
    在go语言中,str指的是“字符串”,是一个不可改变的字节序列。字符串可以包含任意的数据,但是通常是用来包含可读的文本,字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-...
    99+
    2023-05-14
    go语言 Golang 字符串
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作