7.取地址数组名取出的是整个数组的地址,再解引用得到整个数组。也可以这样理解:取地址和解引用抵消了,相当于sizeof(数组名)答案是16 8.&数组名+1,指针跳过整个数组,但这个表达式依然是地址,sizeof计算的依然是地址的大小。答案是4/8 9.数组下标运算符【】的优先级高于取地址操作符&。所以这里是先访问首元素再...
2、数组名也不例外,也是代表存储该数组的内存空间的首地址。 例如:定义一个int型数组 int arr[3]={1,2,3}; //int型数组有3个元素,所以用12个连续的字节存储,数组名a代表第一个字节的首地址。 double d[3]={1.1,2.2,3.3}; //double型数组有3个元素,所以用24个连续的字节存储,数组名d代表第一个字节...
用于指针运算,例如arr + i可以访问数组中第i个元素的地址。 三、对数组名取地址 含义: &arr表示取整个数组的地址。与数组名本身不同,它返回的是一个指向整个数组的指针,而不是指向数组第一个元素的指针。 这个指针的类型是“指向包含 5 个整数的数组的指针”,即int (*)[5]。 用法: 在一些复杂的指针操作...
整个数组元素的地址是 &a。 我们通过程序来看一下数组首元素地址和整个数组的地址。 程序运行结果如下(编译器mingw5): 通过结果我们看出数组首元素地址和整个数组的地址得到的结果相同,但实际上二者的数据类型不同。 数组名:a的数据类型是指向int的常量指针,int * const ,不允许对其进行修改。 数组名取地址: &a...
在C语言中,数组名代表数组的首元素地址,因此对数组名取地址实际上是获取该数组的首地址。然而,由于C语言中数组名可以隐式地转换为指针,因此对数组名取地址并不会得到数组的地址,而是得到指向该数组的指针。 具体来说,对于一个数组a,其名称a代表了数组的首元素的地址,即&a[0]。当对a取地址时,即&a,实际上得...
相信不少的C语言初学者都知道,数组名相当于指针,指向数组的首地址,而函数名相当于函数指针,指向函数的入口地址。现在又这样一个问题,如果对数组名取地址,那得到的会是什么呢?很多人立刻会想到:给指针取地址,就是指针的指针,既二级指针嘛!当然这样的结论是错误的,不然这篇笔记也就没有意义了。
比你在那瞎琢磨有用的多!数组就是指针为什么是错的?449 赞同 · 38 评论回答
本文转自解析:数组名a、数组名取地址&a、数组首地址&a[0]、数组指针*p。 1 解析不同变量之间的区别: 数组名a: 数组名可以作为数组第一个元素的指针。我们由数组和指针的关系知道,a代表这个地址数值,它相当于一个指针,指向第一个元素(&a[0]),即指向数组的首地址。数组中的其他元素可以通过a的位移得到,此时...
对于数组名取地址强制转换的操作 偶然在晚上学了C语言指针后网页闲逛找题时,被一个数组名取地址搞糊涂了,在自己试验加探索后我稍微悟了一点东西。 代码如下: #include<stdio.h> #include<stdlib.h> int main(void) { int a[5] = { 1,2,3,4,5}; ...
1、实参array 隐式转换为指向数组首元素的指针,打印出来是首元素的地址 2、&array[0] ,根据运算符...