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

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

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

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

2、数组首元素地址

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

3、数组地址

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

#include 
#include 
#include 

/**
 * @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]”表示的是数组的首元素地址,要注意的是,这个首元素地址是第一个元素数组的首地址。

你可能感兴趣的:(C/C++基础知识,c++)