C语言入门(八)一维数组

简介: C语言入门(八)一维数组

概念


   数组是相同数据类型的有序数据的集合。

   数据类型可以是基本数据类型们也可以是指针、结构体和共用体等类型。

   有序并不是按一定的顺序升序或降序,而是这些数据都有一个下标,带有一个下标的就称为一维数组,多个下标的就是多维数组。


定义和引用

定义


  一般形式为:

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

  表达式不能为变量,应为整型常量或符号常量

  如: int a[6];

   定义了一个整型的一维数组,数组名为a,有6个元素

说明


   常量表达式用来表示数组元素的个数,即数组的长度。

   且C语言规定,数组元素的下标从0开始,不能为负数,下标的最大取值由“常量表达式”的值减1确定;例如上面的例子中a[6]有6个元素,分别是a[0]、a[1]、a[2]、a[3]、a[4]、a[5],没有a[6]。


引用


   形式:

   数组名[下标];

   下标必须是一个整型表达式。

   例如:

   a[3] = 5;

   a[2] = a[3] - a[a[3]-4];

   这两个语句的意思就是:先把5赋值给a[3]这个元素,然后下面就是先计算a[3]-4结果为1,那么a[a[3]-4] = a[1];下面语句就变成了a[2] = a[3] - a[1];意思就是把a[3]和a[1]的差值赋值给a[2]。


初始化


   形式:

   类型名 数组名[数组长度] = {初值表};


   初值表存放着数组元素的初值

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

   也可以省略数组长度,等价于int a[] = {5,4,6,2,3,1};

   但必须要注意:一旦[]里面有了数组长度,该数组的长度就固定了,如果你初值表少写了一个,会自动默认为0。

   下面省略数组长度的写法,比如你初值表只有5个数,那么他的数组长度就是5。


   静态存储:加了关键字static的话,没有初始化,只是定义了就会自动给所有数组元素赋0;

   比如:static int a[6];


  动态存储:只定义不初始化,数组元素值是不确定的。比如:int a[6];


如果一个数组中全部元素的值都为0,可以简写成:int a[6] = {0};


如果初值的个数大于数组长度,则会产生编译错误。

目录
相关文章
|
10月前
|
存储 人工智能 程序员
一文彻底搞明白C语言的数组
本文详细介绍了C语言中的数组,包括定义、初始化(静态与动态)、存储方式、访问方法及常用操作,如遍历、修改元素和作为函数参数传递。数组是C语言中最基本的数据结构之一,掌握它对编程至关重要。下篇将介绍二维数组,敬请期待!
523 0
一文彻底搞明白C语言的数组
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
401 7
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
11月前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
376 4
|
11月前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
295 1
|
传感器 算法 安全
【C语言】两个数组比较详解
比较两个数组在C语言中有多种实现方法,选择合适的方法取决于具体的应用场景和性能要求。从逐元素比较到使用`memcmp`函数,再到指针优化,每种方法都有其优点和适用范围。在嵌入式系统中,考虑性能和资源限制尤为重要。通过合理选择和优化,可以有效提高程序的运行效率和可靠性。
891 6
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
366 5
|
存储 程序员 编译器
C 语言数组与指针的深度剖析与应用
在C语言中,数组与指针是核心概念,二者既独立又紧密相连。数组是在连续内存中存储相同类型数据的结构,而指针则存储内存地址,二者结合可在数据处理、函数传参等方面发挥巨大作用。掌握它们的特性和关系,对于优化程序性能、灵活处理数据结构至关重要。
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
存储 NoSQL 编译器
C 语言中指针数组与数组指针的辨析与应用
在C语言中,指针数组和数组指针是两个容易混淆但用途不同的概念。指针数组是一个数组,其元素是指针类型;而数组指针是指向数组的指针。两者在声明、使用及内存布局上各有特点,正确理解它们有助于更高效地编程。
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
263 4