C/C++语音基础-数组和指针

1.数组、指针

数据的集合,内存中是一个连续的内存区

指针 指向数组的首地址

 

通过移动指针,可以指向数组的各个元素

指针 + 1,是根据当前指针类型 加 类型的大少,进行移动

2.指针数组

数组的每一个元素都是一个指针(指针指向不同的变量)

int arr[] = { 100,200,300 };
    
    int *p[3];//指针数组

    
    for (int i = 0; i < 3; i++)
    {
        p[i] = &arr[i]; //取地址,把地址复制给指针

    }
    printf("-------操作后-------\n");
    for (int i = 0; i < 3; i++)
    {
        printf("数组%d\n", *p[i]);
    }

优先级 () > [] > *

 

3.数组指针(行指针)

int(*p)[n]

()优先级高,首先说明p是一个指针,指向一个整形的一维数组,这个一维数组的长度是n,也可以说是p的步长。

p + 1要跨过n个整形数据的长度。

int a[3][4]// 二维数组

int (*p)[4]; // 该语句是定义一个数组指针,指向含有4个元素的一维数组

p = a; // 将二维数组的首地址赋值给p,就是a[0]或 &a[0][0]

p++; // 该语句执行后,p跨过行a[0][] 指向了行a[0][]

 

指针数组代表了一个数组,每个元素存放的是一个地址

数组支持是一个变量,存放的是一个指针,指向了一个二维数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值