C语言数组名涵义

1. 数组名涵义

  • 在C语言程序中,数组的出现有两种可能的含义:

    1. 代表整个数组
    2. 代表其首元素的地址
  • 当出现以下情形时,数组代表的是整个数组:

    1. 在数组定义中
    2. 在 sizeof 运算表达式中
    3. 在取址符&中
  • 当出现其他情形时,数组代表其首元素地址。

  • 示例:

int a[3];                  // 此处,a 代表整个数组
printf("%d\n", sizeof(a)); // 此处,a 代表整个数组
printf("%p\n", &a);        // 此处,a 代表整个数组,此处为整个数组的地址

int *p = a;       // 此处,a 代表首元素 a[0] 的地址,等价于 &a[0]
p = a + 1;        // 此处,a 代表首元素 a[0] 的地址,等价于 &a[0]
function(a);      // 此处,a 代表首元素 a[0] 的地址,等价于 &a[0]
scanf("%d\n", a); // 此处,a 代表首元素 a[0] 的地址,等价于 &a[0]

C语言中的数组,在不同场合下有不同的含义,大部分场合都表现为首元素的地址,此时实际上就是一个指向其首元素的指针。数组运算实际上就是指针运算。

你可能感兴趣的:(C语言基础,c语言,开发语言,数据结构,算法)