指针与二维数组

简介: 指针与二维数组

1. 一维数组名就是数组的首地址

在一维数组中a表示数组首元素地址。

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[3] = {1,2,3};
    int *p,*p1;
    p1 = &a[0];
    p = a;
    printf("%d\n",*p);
    printf("%d\n",*p1);
    system("pause");
    return 0;
}

运行效果如下所示:



2.二维数组

定义一个二维数组如下所示:

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

2.1

a[0] :a[0]中第1列元素的地址,&a[0][0]。

a[1]:第2列元素的地址,&a[1][0]。

测试代码:

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*a[0]);
    printf("%d\n",*a[1]);
    system("pause");
    return 0;
}  

运行结果如下:



2.2

在二维数组中a表示第1行元素的地址,a+ i表示第i行元素的地址。

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*(a[0]+0));
    printf("%d\n",*(a[0]+1));
    printf("%d\n",*(a[1]+0));
    printf("%d\n",*(a[1]+1));
    system("pause");
    return 0;
}  

运行结果如下:



2.3

*a:相当于首行首元素地址。

测试代码

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*a[0]);
    printf("%d\n",**a);
    system("pause");
    return 0;
}  

2.4

*a==a[0]==&a[0][0]

测试代码:

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*a);
    printf("%d\n",a[0]);
    printf("%d\n",&a[0][0]);
    system("pause");
    return 0;
}  

运行结果如下所示:


int a[3] = {1,2};
*a :1
int a[2][2] = {{3,4},{1,2}};
*a 是{3,4}的首地址
相关文章
|
8月前
|
C语言
C语言---二维数组&&指针
C语言---二维数组&&指针
38 0
|
7月前
指针\动态二维数组空间
指针\动态二维数组空间
41 4
|
3月前
|
存储
如何使用指针数组来实现动态二维数组
指针数组可以用来实现动态二维数组。首先,定义一个指向指针的指针变量,并使用 `malloc` 为它分配内存,然后为每个子数组分配内存。通过这种方式,可以灵活地创建和管理不同大小的二维数组。
|
3月前
|
存储
如何通过指针数组来实现二维数组?
介绍了二维数组和指针数组的概念及其区别,详细讲解了如何使用指针数组模拟二维数组,包括定义与分配内存、访问和赋值元素、以及正确释放内存的步骤,适用于需要动态处理二维数据的场景。
|
4月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
166 4
|
7月前
|
C语言
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
|
7月前
|
C语言
C语言----指针模拟二维数组
C语言----指针模拟二维数组
|
8月前
|
存储 算法 C语言
C语言指针与二维数组在函数参数传递和动态内存管理中的应用
C语言指针与二维数组在函数参数传递和动态内存管理中的应用
71 0
|
8月前
指针的基础应用(数组的颠倒和排序,二维数组的表示)
指针的基础应用(数组的颠倒和排序,二维数组的表示)
39 0
|
8月前
|
C语言 定位技术 存储
【C语言基础入门】二级指针、一维数组与指针、二维数组与指针
【C语言基础入门】二级指针、一维数组与指针、二维数组与指针
198 0
【C语言基础入门】二级指针、一维数组与指针、二维数组与指针