C语言数组(上)

简介: 笔记

一维数组


数组的创建

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

数组的创建方式:

type_t   arr_name   [const_n];

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

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

数组的初始化

1.png

下标只能为整型常量或整型表达式

2.png3.png

数组初始化的正确举例:


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

nt 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";


一维数组的使用

一维数组的下标是从0开始的

4.png5.png

一维数组在内存中的存储

6.png


由此我们可知,一维数组在内存中是连续存储的,且地址是由低地址到高地址


数组大小计算

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

用数组总大小除单个数组内值的大小

7.png


二维数组


二维数组的创建

int arr[3][4];
char arr[3][5];
double arr[2][4];

二维数组下标应该为常量表达式


8.png

int arr[3][4] = {1,2,3,4};
int arr[3][4] = {{1,2},{4,5}};
int arr[][4] = {{2,3},{4,5}};//二维数组如果有初始化,行可以省略,列不能省略

9.png


二维数组的使用

二维数组也是通过下标形式进行访问的,二维数组未完全初始化的部分会被赋0,若整个数组未初始化则是乱码

10.png11.png

二维数组的存储

二维数组可理解为按行和列进行存储

12.png

我们看到二维数组在内存中也是连续存储的

13.png

二维数组理解成一维数组

我们可将二维数组的每一行理解成一个一维数组


14.png

15.png

相关文章
|
14天前
|
存储 编译器 C语言
C语言之数组
C语言之数组
22 0
|
15天前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
2月前
|
C语言
在C语言中数组作为函数参数的应用与示例
在C语言中数组作为函数参数的应用与示例
16 0
|
2月前
|
C语言
【进阶C语言】数组笔试题解析
【进阶C语言】数组笔试题解析
21 0
|
4天前
|
机器学习/深度学习 C语言
C语言三维数组的创建
该代码片段展示了如何在C语言中创建一个动态的3D数组。由于`n`在编译时未知,不能直接声明为`int f[n][n][n]`。正确的方法是使用`malloc`进行动态内存分配。首先分配`n`个`int **`,然后对每一层分配`n`个`int *`,最后每个元素分配`n`个`int`。之后可以使用这个3D数组,并在完成后正确释放内存。
|
15天前
|
C语言
数组深入剖析(C语言基础入门)
数组深入剖析(C语言基础入门)
|
17天前
|
存储 C语言
C语言中字符串的引用与数组元素操作
C语言中字符串的引用与数组元素操作
21 0
|
29天前
|
存储 人工智能 程序员
爱上C语言:超详细讲解数组,学数组看这一篇就够了(数组篇)
爱上C语言:超详细讲解数组,学数组看这一篇就够了(数组篇)
|
1月前
|
编译器 程序员 C语言
【C语言】变长数组,二分查找和数组之间自动替换的实现
【C语言】变长数组,二分查找和数组之间自动替换的实现
|
1月前
|
存储 C语言
【C语言数组】创建、初始化、以及使用2
【C语言数组】创建、初始化、以及使用