一維陣列和二維陣列的建立、初始化、使用、儲存、指標訪問
阿新 • • 發佈:2019-02-15
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