【基础知识】数组首元素地址和数组地址

1、它们的地址值是一样的

int p[10];
  • 若 p+1,则值为 p 的地址 + 4字节

  • 若 &p+1,则值为 p 的地址 + 40字节

2、数组首元素地址

数组名,就是数组元素的首地址,该值是一个常量,不能被修改,一定程度上等同于常量指针;

3、数组地址

&数组名,整个数组的地址;

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/**
 * @brief 主函数入口
 * @return
 */
int main()
{
    // 定义数组
    int array[10] = {0};

    // 打印数组首元素地址
    printf("array : %d\n", array);
    // 打印数组首元素地址 + 1
    printf("array + 1 : %d\n", array +1);

    // 打印数组地址
    printf("&array : %d\n", &array);
    // 打印数组地址 + 1
    printf("&array + 1 : %d\n", &array + 1);

    // 命令行不要退出
    system("pause");
    return 0;

}

输出结果:

array : 6422184
array + 1 : 6422188
&array : 6422184
&array + 1 : 6422224
请按任意键继续. . .

4、注意

  • 数组首元素地址(数组名字)如果是p,则p+1指向第二个元素的地址

  • 数组地址(&数组名字)如果是p,则p+1就跳过这个数组而指向这个数组中最后一个元素

  • "&数组名[0]”表示的是数组的首元素地址,要注意的是,这个首元素地址是第一个元素数组的首地址。

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值