既然数组名是首地址 为什么还能够将首地址传给一个数组名呢

如题所述

数组是一个独立的类型,数组名就是一个变量的名称,对这个数组取地址就是对这个变量取地址
数组是由元素构成的,在内存中数组占用的内存就是这些元素占用的内存,因此数组的地址(地址就是变量在内存中占用的第一个字节的序号)就是数组内第一个元素的地址
只有初始化时可以整体初始化。因此,在使用中,数组名一般为“指向第一个元素的指针”追问

那为什么地址能传给地址啊

追答

地址 也是变量 只要 类型一样 可以 相互的传递

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-12
不能把数组的首地址赋给另一个数组。因为数组名是常量指针类型,初始化之后是不能够被修改的。
有两种办法实现类似功能,一种是创建指针变量,把地址直接赋值指针变量:
例如 int a[100]; int *b=a;
第二种就是直接用循环一一复制每个元素。
例如 for(i=0;i<strlen(a);i++) b[i]=a[i];追问

那书上说的形参为数组名 实参也为数组名是什么意思啊 难道不是将首地址传给首地址么😥

第2个回答  2015-12-12
为什么还能够将首地址传给一个数组名呢 没明白这句话的意思、哪儿有首地址传给一个数组名的说法?
书上说的 是函数参数传数组名 ,相当于就是传数组首地址追问

形参是数组名 不就是代表的首地址吗 然后实参也是首地址啊 那不就是首地址传给首地址了吗😥

追答

形参是数组名,实质是指针
数组名也是指针 ,
指针初始化指针 有什么问题吗?

第3个回答  2015-12-12
并不能传追答

书上是错的

追问

😂 那为什么书上这么写啊