c语言一维数组啥时候代表首元素地址和整个数组??

新手上路,请多包涵

在一维数组里面,什么时候代表的是首元素地址,什么时候代表的是整个数组
在二维数组里面,什么时候代表着一整行,什么时候代表首元素地址,什么时候代表整个二维数组

阅读 1.5k
2 个回答

当进行下列操作时,作为整个数组看待:

/* 1. */ &array;
/* 2. */ sizeof array;
/* 3. */ Type array[] = "str";

其他时候,会表示首元素指针。

参考文档:https://zh.cppreference.com/w...

直接拿数组的名字来运算的时候,是首元素地址,譬如:

arr + 5
*arr

其它的情况你都可以认为是整个数组,arr[5]你可以认为是整个数组的第5个元素

所谓的二维数组

typedef int INT4[4];
INT4 a1[3];

int a2[3][4];

这两个定义是等价的,可以通过这种方式把二维数组转化成一维数组,然后按一维数组的方式来理解,所以第二个问题的答案转化后跟一维数组的答案相同。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题