C/C++中指针与数字相加减的运算的含义

本文介绍了C/C++中指向数组的指针如何与整数进行加减运算。指针的算术运算基于所指数据类型的大小,整数作为偏移量。通过示例代码展示了如何通过指针移动访问数组的不同元素。

这里拿指向数组的指针举例:

在 C/C++ 中,指向数组起点的指针可以和 int 类型的数字直接相加或相减。这是由于指针的算术运算是根据指针所指向的数据类型进行的,而 int 类型的数字在指针运算中被视为偏移量。

当一个指针与一个整数相加时,编译器会将整数乘以指针所指向的数据类型的大小(字节大小),然后将结果与指针的地址相加,从而得到新的指针。类似地,当一个指针与一个整数相减时,编译器会进行相同的计算,但是结果会减去指针的地址,得到新的指针。

以下是一个示例代码:

#include <iostream>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int* ptr = arr; // 指向数组起点的指针

    // 将指针 ptr 移动 2 个元素位置,相当于 ptr 指向 arr[2]
    ptr = ptr + 2;

    // 输出 arr[2] 的值,结果为 3
    std::cout << *ptr << std::endl;

    // 将指针 ptr 移动回起点,相当于 ptr 指向 arr[0]
    ptr = ptr - 2;

    // 输出 arr[0] 的值,结果为 1
    std::cout << *ptr << std::endl;

    return 0;
}

在上述示例中,我们定义了一个整数数组 arr,并用指针 ptr 指向数组起点。然后,我们对指针 ptr 进行加法和减法运算,将其移动到数组的其他位置,以及移动回起点。通过指针的算术运算,我们可以在数组中灵活地访问不同位置的元素。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值