(数组p1) C语言从入门到入土(入门篇)(一)

简介: 数组 1. 一维数组的创建和初始化 1.1 数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 二维数组的初始化 2.3 二维数组的使用 2.4 二维数组在内存中的存储

//后面的部分下次接着讲哈!

 数组越界

 数组作为函数参数

.数组的应用实例1:三子棋

 数组的应用实例2:扫雷游戏


1. 一维数组的创建和初始化

1.1 数组的创建


数组是一组相同类型元素的集合。

数组的创建方式:

type_t   arr_name   [ const_n ];

//type_t 是指数组的元素类型

//const_n 是一个常量表达式,用来指定数组的大小

数组创建的实例:

// 代码 1

int arr1 [ 10 ];

// 代码 2

int count = 10 ;

int arr2 [ count ]; // 数组时候可以正常创建?

// 代码 3

char arr3 [ 10 ];

float arr4 [ 1 ];

double arr5 [ 20 ];


18.png19.png20.png21.png

 注:数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数组的概念。


1.2数组的初始化


数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。

看代码:

int arr1 [ 10 ] = { 1 , 2 , 3 };

int arr2 [] = { 1 , 2 , 3 , 4 };

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

char arr4 [ 3 ] = { 'a' , 98 , 'c' };

char arr5 [] = { 'a' , 'b' , 'c' };

char arr6 [] = "abcdef" ;  


22.png23.png


数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。


但是对于下面的代码要区分,内存中如何分配。

char arr1 [] = "abc" ;

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


24.png25.png


当用双引号包括时,结尾会自动加一个\0

1.3 一维数组的使用

对于数组的使用我们之前介绍了一个操作符: [] ,下标引用操作符。它其实就数组访问的操作符。

我们来看代码:

#include <stdio.h>
int main ()
{
        int arr [ 10 ] = { 0 }; // 数组的不完全初始化
            //计算数组的元素个数
            int sz = sizeof ( arr ) / sizeof ( arr [ 0 ]);
        //对数组内容赋值 , 数组是使用下标来访问的,下标从 0 开始。所以:
        int i = 0 ; // 做下标
        for ( i = 0 ; i < 10 ; i ++ ) // 这里写 10 ,好不好?
        {
                arr [ i ] = i ;
        }
        //输出数组的内容
        for ( i = 0 ; i < 10 ; ++ i )
        {
                printf ( "%d " , arr [ i ]);
        }
        return 0 ;
}


26.png27.png28.png29.png


总结 :

1. 数组是使用下标来访问的,下标是从 0 开始。

2. 数组的大小可以通过计算得到。

int arr [ 10 ];

int sz = sizeof ( arr ) / sizeof ( arr [ 0 ]);

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