023 指针数组和数组指针

 

/*
一: 原理
二: 指针数组
三: 数组指针
*/

 


一: 原理

定义变量: int num = 1;
    1 组合: 符号 + 名称
        (1) 符号: 数据类型
        (2) 名称: 要操作的数据类型
        (3) 符号为名称所服务的。
    2 优先:
        (1) 默认优先级
        (2) 离符号近(从左到右)的优先级高
        (3) 通过括号改变优先级

 

二: 指针数组

 int main()
{
    // 指针数组
    int a = 1;
    int b = 2;
    int* p1[2] = {&a, &b};
    printf("p1[0] = %d, *p1[0] = %d\n", p1[0], *p1[0]);
    printf("p1[1] = %d, *p1[1] = %d\n", p1[1], *p1[1]);
     
    return 0;
}
/*
p1[0] = -1009780508, *p1[0] = 1
p1[1] = -1009780476, *p1[1] = 2
*/

 

三: 数组指针

 int main()
{
    int pA[] = { 1, 2, 3 };
    printf("pA = 0x%x, %&pA = 0x%x\n", pA, &pA);

    // 数组指针
    int(*p)[3] = &pA;
    printf("&p = 0x%x, p = 0x%x, *p = 0x%x\n", &p, p, *p);
    printf("%d, %d, %d\n", (*p)[0], (*p)[1], (*p)[2]);

    return 0;
}
/*
pA = 0xd112fba8, &pA = 0xd112fba8
&p = 0xd112fbd8, p = 0xd112fba8, *p = 0xd112fba8
*/

 

posted @ 2023-04-28 21:40  火焰马  阅读(6)  评论(0编辑  收藏  举报