1.解析一维数组的创建和初始化
2.一维数组的使用
3.一维数组的存储
4.一维数组的指针访问
5.解析二维数组的创建和初始化
6.二维数组的使用
7.二维数组的存储
8.二维数组的指针访问
1.解析一维数组的创建和初始化
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//初始化数组
void init(int p[], int sz)
{
int i = 0;
for (i = 0; i < sz; ++i)
{
p[i] = i;
printf("%d ", p[i]);
}
printf("\n");
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main()
{
int p[10];//创建一维数组
int sz = sizeof(p) / sizeof(p[0]);//数组长度
init(p, sz);//初始化数组
}
void main()
{
int p[10] = {0,1,3,4,5,6,7,8,9};//创建并初始化
int i = 0;
for (; i < 10;++i)
{
printf("%d ", p[i]);
}
printf("\n");
}
2.一维数组的使用
数组名[下标],如p[0],p[i+1]
3.一维数组的存储
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main()
{
int p[10];
printf("%d\n", sizeof(p));
}
输出结果为40,一个整形4字节,10个整形40字节。
4.一维数组的指针访问
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main()
{
int p[10] = { 0, 1, 2, 3, 4 };
int j = 0;
for (int i = 0; i < 10; ++i)
{
printf("%d ", *p);//输出指针所指元素
*p += 1;//地址+1
}
}
5.解析二维数组的创建和初始化
分行初始化 int pp[2][3]={{1,2,3},{4,5,6}};
不分行初始化 int pp[2][3]={1,2,3,4,5,6};
部分初始化 int pp[2][3]={{1,2},{3}};
省略初始化 int pp[][3]={1,2,3,4,5,6};
6.二维数组的使用
数组名[下标][下标]
7.二维数组的存储
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main()
{
int pp[3][3];
printf("%d", sizeof(pp));
}
结果为36字节,3*3*int=36字节
数组长度sizeof(pp)/sizeof(pp[0][0])=9
8.二维数组的指针访问
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void main()
{
int pp[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
int i = 0, j = 0;
for (i = 0; i < 2; ++i)
{
for (j = 0; j < 3; j++)
{
printf("%d ", **pp);
**pp += 1;
}
printf("\n");
}
}
输出结果为
1 2 3
4 5 6