软件平台搭建流程,温州seo网络推广代理价格,注册城乡规划师报考条件2022,wordpress图片加水印1 二维数组
1.1二维数组认识
二维数组本质是一个数组。
举例#xff1a; int a[10][3] 数组名 a#xff1b; 元素个数10#xff1b; 数组元素类型#xff1a;int [3]; 数组元素下标#xff1a;0~9 这是一个数组#xff0c;有十个元素#xff0c;每个元…1 二维数组
1.1二维数组认识
二维数组本质是一个数组。
举例 int a[10][3] 数组名 a 元素个数10 数组元素类型int [3]; 数组元素下标0~9 这是一个数组有十个元素每个元素内有三个数据。
1.2二维数组初始化 1每个元素使用{}中间用逗号间隔整体再使用{} int a[2][3]{{1,2,3},{2,3,1}}; 可以部分初始化 int a[2][3]{{1,2,3},{2}};//未初始化部分默认为0 可以省略元素个数 int a[][3]{{1,2,3},{2,3,1}};
不能省略元素的数据个数
1.3二维数组具体的数据访问
1.3.1下标方式 数组具体的数据内容数组名[i][j]; 数组的具体数据地址数组名[i][j];
int a[2][3]{{1,2,3},{2,3,1}};
一号元素的一号数据 a[1][1]3;
0号元素的0号数据a[0][0]1;
for(int i0;i3;i)
{ for(int j0;j3;j) { scanf(%d,a[i][j]); }
}
二维数组空间存储每个数据空间连续
1.3.2数组名方式
二维数组数组名的方式访问数组中的具体数据
int a[3][3]{{1,2,3},{4,5,6,},{7,8,9}};
a数组名数组首元素地址
(a1): 1号元素的地址
*(a1):*(a1)0 1号元素的0号数据地址
一号元素取内容不是具体数值是该元素首数据的地址
*(a1):*(a1)1 1号元素的1号数据地址
*a1 0号元素的1号数据的地址
**a1 0号元素的1号数据的内容
元素取内容不是具体值而是地址因为元素下还有多个数据
*(*(a2)3)二号元素三号数据的内容 1.3.3指针类型
访问数组中的具体数据
指针的方式访问指向数组中的具体数据
指针的方式访问指向数组中的元素
指针的方式访问指向数组
int a[3][3]{{1,2,3},{4,5,6,},{7,8,9}};
int *p
//pa;//a是首元素地址*a是首元素首数据地址
pa[0][0];
p;
1.4二维数组的应用
二维数组一个数组中有多个数组
一个字符串应该存储在一个字符数组中
一个二维数组可以存储多个字符串 2 数组与指针 2.1指针与数组
说明
int *a[10];
int (*a)[10];
有括号就是指针没括号就是数组
是指针就以指针的要素分析
是数组就以数组的要素分析 2.2指针数组
说明数组里的元素都是地址类型指针数组
int *a[10];
数组名 a
数组元素个数10
数组元素类型int *
数组元素下标0~9
此数组有10个元素每个元素都可以存一个地址编号每个元素相当于一个指针变量
2.3数组指针
整体操作数组
指针变量可以存整型变量的地址整型指针 int *p;
.
.
.
.
指针变量可以存函数的地址函数指针 int *p;
指针变量可以存数组的地址数组指针 int *p;
int (*a)[10];
变量名a
指向对象类型 int [10];
此指针可以存一个数组的地址编号要求10元素每个元素是int类型
int a[10]{10,20,30,40}
int (*m)[10];
ma;
m;//偏移40字节
a[0]0号元素的地址
a数组首元素地址0号元素的地址
a数组的地址
2.3.1数组指针的使用
一维数组
int a[10];
char b[10]; 通过指针访问指向一维数组中的元素数据
int *p; pa; //pa[0] p *p:下一个整型元素值
int *q; qb; //qb[0] q *q:下一个整型元素值
char *q;qb; 通过指针访问指向一维数组
①定义一个指针变量 指向对象类型是一个数组 int [10];数组类型 int [10] ②明确指向
pa;
③使用无实际使用价值 二维数组
int a[3][10];
char b[3][10]{aaa,bbb,ccc}; 指针的方式访问指向数组中元素下的具体数据 int *p;pa[0][0]; // p *p:同元素的下一个整型数据 char *q; qb[0][0];// q *q:同元素的下一个字符型数据 指针的方式访问指向数组中的元素 指针的方式访问指向数组
①定义一个指针变量 指向对象类型是一个数组 char [10]; 数组类型 char [10]; char(*p)[10]; ②明确指向
pb;
③使用
p; //下一个元素地址 下一个字符串
需求主函数有一个指令包指令包有10个字符串指令用户输入一个字符串指令
下一个子函数判定用户输入的字符串指令是否在指令包中
在返回1不在返回0 分析主函数
指令包二维数组
用户输入指令字符串 子函数参数char(*p)[10],char *m
返回值int
说明
和二维数组中每个字符串进行对比
#include stdio.h
#include string.ha
int main(void)
{
u8 val;
char user[10]{0};
char cmd[10][10]{ aaa,123;sds,sds,aba,aas,ccc, }
//用户输入指令
printf(请输入指令)
scaf(%s,a)
//调用函数判断
valfun(cmd,user);
if(val1)
{ }
else
{ } } int fun( char (*p)[10],char *m)
{
int i;
for(i0;i9;i)
{ if strcmp(m,(char *)(pi))0 ;//指针强转
} }