在C/C++中,数组名相当于一个指针,指向数组的首地址。这里“相当于”不代表等于,数组名和指针还是有很多区别的,这个在《C陷阱与缺陷》里有详尽的讲述。而这里要说的是对于数组名取地址的这么一个操作。 如果声明有如下数组: 那么,&arr这个操作得到了什么值呢? 如果简单 ...
C语言规定,数组名代表数组的首地址,也就是第 号元素的地址。所以a amp a 但对数组名取地址时却要注意了,在理解 对数组名取地址 这一表达式的含义时一定要记住:数组名是 数组 这种变量的变量名 这样, amp a就好理解了,它取的是 数组 这种变量的地址 amp a 自然也就要跨过整个数组,所有元素长度总和,这么长的一个长度。例如:int a ,那么 amp a 就要跨过 个int的长度 详细 ...
2015-03-26 20:20 0 5937 推荐指数:
在C/C++中,数组名相当于一个指针,指向数组的首地址。这里“相当于”不代表等于,数组名和指针还是有很多区别的,这个在《C陷阱与缺陷》里有详尽的讲述。而这里要说的是对于数组名取地址的这么一个操作。 如果声明有如下数组: 那么,&arr这个操作得到了什么值呢? 如果简单 ...
相信不少的C语言初学者都知道,数组名相当于指针,指向数组的首地址,而函数名相当于函数指针,指向函数的入口地址。现在又这样一个问题,如果对数组名取地址,那得到的会是什么呢?很多人立刻会想到:给指针取地址,就是指针的指针,既二级指针嘛!当然这样的结论是错误的,不然这篇笔记也就没有意义 ...
#include <stdio.h> int main() { int a[5]; printf("%d\n", a); printf("%d\ ...
以下代码会打印出什么样的日志呢? [cpp] view plain copy ...
一,首先我们先分析下数组名和数组名取地址的区别。 我们都知道数组名是数组的首地址,然而对数组名取地址又是什么那?看下面一段程序你就会懂的。 #include "stdafx.h" #include<stdio.h> using namespace ...
目录: 1. 开篇 2. 论数组名array、&array的区别 3. array、&array的区别表现在什么地方 4. 讨论 5. 参考 1.开篇 很多博客和贴吧都有讨论这个话题,各有自己的表述方式,今天在他们的基础上我将继续试着以我自己理解的方式总结一下,欢迎大家的审阅和指评 ...
第二个为指向数组的指针. a只是a[0]的地址,a+1就是a[1]的地址了, &a是整个a[10]的首地址,是以整个数组为角度来看,虽然它与a[0]的值相同,但是&a+1就已经增加了10个int类型的字节的长度了. 本机 ...
的指针 下面从一维数组说起:(定义:int a[4]) (1)一维数组名a是个地址,地址类型为 ...