zoukankan      html  css  js  c++  java
  • C/C++的数组名

    数组名相当于指向数组第一个元素的地址。
    数组名不是变量,是地址常量,不能为其赋值。

    如下:
    1)一维数组中
    对于数组 a[5] = {1, 2, 3, 4, 5};
    数组名a相当于指向第一个元素a[0]的指针。即 a 与 &a[0] 等价。

    2)二维数组中

    int a[2][3] = {1, 2, 3, 4, 5, 6};
    int __; // 完成对p的定义
    p = a;

    分析 p = a;
    a 相当于指向a[2][3] 的“第一个元素”的地址
    所谓“第一个元素”是指第一个“包含3个int型元素的一维数组”
    所以a 相当于一个“包含3个int型元素的一维数组”的地址
    因此p的基类型应该是:”包含3个int型元素的一维数组“

    定义一个指向“包含3个int 型元素的一维数组”的指针变量:
    int (*p)[3];

    注意:
    int *p = &a[0];
    a++是没有意义的,但p++会引起p的变化
    p可以指向数组最后一个元素以后的元素
    指针做加减运算时一定注意有效的范围。

    int a[5];
    int *p = &a[0];
    p--;
    *p = 6; // damage

  • 相关阅读:
    玩游戏(dfs)
    Find them, Catch them(并查集)
    Shredding Company(dfs)
    Sudoku(dfs)
    Network Saboteur(dfs)
    棋盘问题(dfs)
    Curling 2.0(dfs)
    A Knight's Journey(dfs)
    15. 3Sum
    12. Integer to Roman
  • 原文地址:https://www.cnblogs.com/aqing1987/p/4205171.html
Copyright © 2011-2022 走看看