c c array - yaokun123/php-wiki GitHub Wiki

数组

一、数组名的含义

数组名是常量,不能被赋值

int a[5] = {10,20,30,40,50};

a[0]:代表第0个元素

&a[0]:代表第0个元素的地址

a:数组名,代表数组,也代表第0个元素的地址

&a:整个数组的地址

注意:在数值上,&a[0]、a、&a相等

#include<stdio.h>

int main(){

    int a[5] = {10,20,30,40,50};

    printf("a[0] = %u\n",a[0]);
    printf("&a[0] = %u\n",&a[0]);
    printf("a = %u\n",a);
    printf("&a = %u\n",&a);
    return 0;

    /*
    a[0] = 10
    &a[0] = 3970271184
    a = 3970271184
    &a = 3970271184
    */
}

二、数组的计算

a[0] + 1:代表数组第0个元素的值+1

&a[0] + 1:代表数组第0个元素的地址+1,跨过一个元素

a:代表数组第0个元素的地址+1,跨过一个元素

&a:整个数组的地址+1,跨过整个数组

#include<stdio.h>

int main(){

    int a[5] = {10,20,30,40,50};

    printf("a[0]+1 = %u\n",a[0]+1);
    printf("&a[0]+1 = %u\n",&a[0]+1);
    printf("a+1 = %u\n",a+1);
    printf("&a+1 = %u\n",&a+1);
    return 0;

    /*
    a[0]+1 = 11
    &a[0]+1 = 3970271188
    a+1 = 3970271188
    &a+1 = 3970271204
    */
}

三、二维数组

int a[2][3] = {{1,2,3},{4,5,6}};

a[0][0]:代表第0行第0个元素

&a[0][0]:代表第0行第0个元素的地址

a[0]:代表第0行,一维数组的数组名 a[0] = &a[0][0]

&a[0]:代表第0行的地址

a:二维数组的数组名,代表二维数组,也代表首行地址 a = &a[0]

&a:二维数组的地址

#include<stdio.h>

int main(){
    int a[2][3] = {{1,2,3},{4,5,6}};

    printf("a[0][0] = %u\n",a[0][0]);
    printf("&a[0][0] = %u\n",&a[0][0]);
    printf("a[0] = %u\n",a[0]);
    printf("&a[0] = %u\n",&a[0]);
    printf("a = %u\n",a);
    printf("&a = %u\n",&a);
    return 0;

    /*
    a[0][0] = 1
    &a[0][0] = 3984353232
    a[0] = 3984353232
    &a[0] = 3984353232
    a = 3984353232
    &a = 3984353232
    */
}

四、二维数组的计算

a[0][0]+1:代表第0行第0个元素值+1

&a[0][0]+1:代表第0行第0个元素的地址+1,跨过1个元素

a[0]+1:跨过1个元素

&a[0]+1:代表第0行的地址+1,跨过1行

a+1:跨过1行

&a+1:二维数组的地址+1,跨过整个数组

#include<stdio.h>

int main(){
    int a[2][3] = {{1,2,3},{4,5,6}};

    printf("a[0][0]+1 = %u\n",a[0][0]+1);
    printf("&a[0][0]+1 = %u\n",&a[0][0]+1);
    printf("a[0]+1 = %u\n",a[0]+1);
    printf("&a[0]+1 = %u\n",&a[0]+1);
    printf("a+1 = %u\n",a+1);
    printf("&a+1 = %u\n",&a+1);
    return 0;

    /*
    a[0][0]+1 = 2
    &a[0][0]+1 = 3984353236
    a[0]+1 = 3984353236
    &a[0]+1 = 3984353244
    a+1 = 3984353244
    &a+1 = 3984353256
    */
}
⚠️ **GitHub.com Fallback** ⚠️