2024-02-17-物联网C语言(2-数组)
1.2024-02-16-物联网C语言(1-数据类型与语句)
2.2024-02-17-物联网C语言(2-数组)
3.2024-02-17-物联网C语言(3-函数)4.2024-02-17-物联网C语言(4-预处理)5.2024-02-17-物联网C语言(5-指针)6.2024-02-18-物联网C语言(6-动态内存申请)7.2024-02-18-物联网C语言(7-字符串处理函数)8.2024-02-18-物联网C语言(8-结构体、共用体、枚举)9.2024-02-19-物联网C语言(9-链表)10.2024-02-20-物联网C语言(10-文件)11.2024-02-21-物联网系统编程(1-Shell语言)12.2024-02-21-物联网系统编程(2-系统调用)13.2024-02-22-物联网系统编程(3-进程)14.2024-02-23-物联网系统编程(4-信号)15.2024-02-24-物联网系统编程(5-管道、命名管道)16.2024-02-27-物联网系统编程(6-消息队列)17.2024-02-27-物联网系统编程(7- 共享内存)18.2024-02-27-物联网系统编程(8-线程)19.2024-02-28-物联网系统编程(9-多任务互斥与同步)20.2024-02-29-Linux高级网络编程(1-计算机网络概述)21.2024-02-29-Linux高级网络编程(2-UDP编程)22.2024-02-29-Linux高级网络编程(3-UDP编程-TFTP、广播、多播)23.2024-02-29-Linux高级网络编程(4-TCP编程)24.2024-03-01-Lniux高级网络编程(5-网络通信过程)25.2024-03-01-Linux高级网络编程(6-原始套接字)2.数组
2.1 数组的概念
数组是若干个相同类型的变量在内存中的有序存储集合。
- 数组存储一组数据
- 数组里面存储的数据类型必须是相同的
- 数字在内存中会开辟一块连续的空间
// 定义了一个整型的数组a,a是数组的名字,数组中有10个元素,每个元素的类型都是int类型,而且在内存中连续存储 // 这10个元素分别为 a[0],a[1]... a[10] int a[10];
2.2 数组的分类
2.2.1 按照元素类型分类
-
字符数组
即若干个字符变量的集合,数组中的每个元素都是字符型的变量
char s[10]; -
短整型数组
short int a[10]; -
整型数据
int a[10]; -
长整型数据
long int a[10]; -
浮点型数组
float a[10]; double a[10]; -
指针数组
char *a[10]; int *a[10]; -
结构体数组
struct stu boy[10];
2.2.2 按维数分类
一维数组
int a[30];
二维数组
int a[2][30]
多维数组
int a[4][3][10];
2.3 数组的定义
2.3.1 一维数组定义
定义一个数组,在内存中分配空间
// 格式 // 数据类型 数组名[数组元素个数] int a[10]; // 定义了一个数组,数组元素的类型为int类型,一共10个元素 ;下标从0开始,分别为a[0],a[1]...a[9]
注意:数组元素的个数可以定义也可以不定义;不定义的时候采用初始化的方法。
#include<stdio.h> int main(){ int a[10]; printf("sizeof(a) = %d \n",sizeof(a)); int b[] = {10,20,30}; printf("sizeof(b) = %d\n",sizeof(b)); return 0; }
输出结果:
sizeof(a) = 40 sizeof(b) = 12
2.3.2 二维数组定义
// 格式: 数据类型 数组名[行的个数][列的个数] int a[2][4]; // 定义一个名为a的二维数组,每一个元素都是int类型;这个二维数组包含2行4列的元素,一共8个元素 // 二维数据也是连续开辟空间,访问元素是行和列,从0开始 // a[0][0],a[0][1]...
#include<stdio.h> int main(){ int c[2][4]; printf("sizeof(c) = %d\n",sizeof(c)); // 二维数组行数可以省略,列数不能省略 // 系统根据列数自动指定行数,最终数组大小为行数乘以列数 int d[][3] = {1,2,3,4,5}; printf("sizeof(d) = %d\n",sizeof(d)); return 0; }
输出结果
sizeof(c) = 32 sizeof(d) = 24
2.3.3 一维数组初始化
#include <stdio.h> int main() { // 局部初始化,未初始化的地方就补0 int a[4] = {10, 20}; printf("a[0]=%d\n", a[0]); printf("a[1]=%d\n", a[1]); printf("a[2]=%d\n", a[2]); printf("a[3]=%d\n", a[3]); return 0; }
输出结果
a[0]=10 a[1]=20 a[2]=0 a[3]=0
2.3.4 二维数组初始化
#include <stdio.h> int main() { int b[2][3] = {{10, 23, 30}, {23, 235, 45}}; printf("b[0][0]=%d\n", b[0][0]); printf("b[0][1]=%d\n", b[0][1]); printf("b[0][2]=%d\n", b[0][2]); printf("b[1][0]=%d\n", b[1][0]); printf("b[1][1]=%d\n", b[1][1]); printf("b[1][2]=%d\n", b[1][2]); // 二维数组局部初始化,未赋初始值的地方补0 int c[2][3] = {13,23,55,66,88}; printf("c[0][0]=%d\n", c[0][0]); printf("c[0][1]=%d\n", c[0][1]); printf("c[0][2]=%d\n", c[0][2]); printf("c[1][0]=%d\n", c[1][0]); printf("c[1][1]=%d\n", c[1][1]); printf("c[1][2]=%d\n", c[1][2]); return 0; }
输出结果:
b[0][0]=10 b[0][1]=23 b[0][2]=30 b[1][0]=23 b[1][1]=235 b[1][2]=45 c[0][0]=13 c[0][1]=23 c[0][2]=55 c[1][0]=66 c[1][1]=88 c[1][2]=0
2.4 数组元素的引用方法
int a[10]; // 引用方法: 数组名[下标]; a[2];
#include <stdio.h> int main() { int a[6] = {13, 131, 346, 134, 34, 34}; // 一维数组遍历 int i; for (i = 0; i < sizeof(a) / sizeof(int); i++) { printf("a[%d] = %d\n", i, a[i]); } // 二维数组的遍历 int b[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // 二维数组循环 int m, n; for (m = 0; m < 3; m++) { for (n = 0; n < 4; n++) { printf("b[%d][%d = %4d\n",m,n, b[m][n]); } } }
输出结果:
a[0] = 13 a[1] = 131 a[2] = 346 a[3] = 134 a[4] = 34 a[5] = 34 b[0][0 = 1 b[0][1 = 2 b[0][2 = 3 b[0][3 = 4 b[1][0 = 5 b[1][1 = 6 b[1][2 = 7 b[1][3 = 8 b[2][0 = 9 b[2][1 = 10 b[2][2 = 11 b[2][3 = 12
2.5 字符串数组
2.5.1字符数组的定义和初始化
用字符串方式赋值比用字符逐个赋值要多占用1个字节,用来存放字符串结束标志\0
#include <stdio.h> int main(){ char ch[32]=""; scanf("%s",ch); printf("ch = %s",ch); return 0; }
输入输出结果
hello world! ch = hello
本文来自博客园,作者:Yasuo_Hasaki,转载请注明原文链接:https://www.cnblogs.com/hasaki-yasuo/p/18017732
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步