C语言二维数组专题——先搞晕你

c/c++

浏览数:141

2019-3-30

AD:资源代下载服务

小伙伴们,对C语言编程有疑问的,可以加微信交流:poo_poo或者扫描我的头像,验证时请注明是“知友”

二维数组C语言中的一个重要的概念,它的每一个数组元素是一个一维数组,看起来好复杂是不是?我写了一个程序,是关于二维数组的,我特意把复杂的地方都输出来,如下:

#include <stdio.h>
//编译器名: TDM-GCC 4.9.2 32-bit Release
//运行平台:windows xp 32bit 

int main(void)
{
    int number[2][2] = { {1, 2}, {3, 4} };

    printf("number的值是%p, number + 1的值是%p\n", (void *)number, (void *)
              (number + 1));
    printf("*number的值是%p, *number + 1的值是%p\n", (void *)(*number), 
              (void *)(*number + 1));
    printf("number[0]的值是%p, number[0] + 1的值是%p\n", (void *)
              (number[0]), (void *)(number[0] + 1));
    printf("*number[0]的值是%d\n", *number[0]);
    printf("**number的值是%d\n", **number);
    printf("*(*(number + 1) + 1)的值是%d\n", *(*(number + 1) + 1));

    return 0;
}

输出结果是:

看看我的程序,number是一个二维数组名,每个元素都是一个一维数组,这个一维数组有两个int类型的数值。

程序中,我有输出number的,有输出*number的,有输出number[0]的,有输出*number[0]的,有输出**number的,朋友们可以看看运行结果,如果你对输出结果没有疑问的话,小伙子,你可以的!你对二维数组已经有所了解啦;如果对输出结果有疑问的,也没关系,接下来几篇文章,我就来好好分析二维数组。

其实,刚开始在学习二维数组的时候,我也被搞的晕乎乎的,想撕书了!