1. 程式人生 > >一維陣列和二維陣列的建立、初始化、使用、儲存、指標訪問

一維陣列和二維陣列的建立、初始化、使用、儲存、指標訪問

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] = {013456789};//建立並初始化
    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