相信不少的C语言初学者都知道,数组名相当于指针,指向数组的首地址,而函数名相当于函数指针,指向函数的入口地址。现在又这样一个问题,如果对数组名取地址,那得到的会是什么呢?很多人立刻会想到:给指针取地址,就是指针的指针,既二级指针嘛!当然这样的结论是错误的,不然这篇笔记也就没有意义 ...
在C C 中,数组名相当于一个指针,指向数组的首地址。这里 相当于 不代表等于,数组名和指针还是有很多区别的,这个在 C陷阱与缺陷 里有详尽的讲述。而这里要说的是对于数组名取地址的这么一个操作。 如果声明有如下数组: 那么, amp arr这个操作得到了什么值呢 如果简单的认为arr就是一个指向数组首地址的指针的话,那么很自然会想到 amp arr得到的是一个指向存放arr这个指针的指针,也就是一 ...
2015-10-06 23:35 0 4148 推荐指数:
相信不少的C语言初学者都知道,数组名相当于指针,指向数组的首地址,而函数名相当于函数指针,指向函数的入口地址。现在又这样一个问题,如果对数组名取地址,那得到的会是什么呢?很多人立刻会想到:给指针取地址,就是指针的指针,既二级指针嘛!当然这样的结论是错误的,不然这篇笔记也就没有意义 ...
C语言规定,数组名代表数组的首地址,也就是第0号元素的地址。所以a==&a[0] 但对数组名取地址时却要注意了,在理解“对数组名取地址”这一表达式的含义时一定要记住:数组名是“数组”这种变量的变量名 这样,&a就好理解了,它取的是“数组”这种变量的地址 &a+1自然 ...
目录: 1. 开篇 2. 论数组名array、&array的区别 3. array、&array的区别表现在什么地方 4. 讨论 5. 参考 1.开篇 很多博客和贴吧都有讨论这个话题,各有自己的表述方式,今天在他们的基础上我将继续试着以我自己理解的方式总结一下,欢迎大家的审阅和指评 ...
*C语言中数组名和&数组名的区别* b:19921780 &b:19921780 b+1:19921784 &b+1:19921820 结论:数组名b表示的是“数组首个元素的地址,而首个元素是int类型”,&b指的是int ...
其实这两个东西挺难理解的,应该也没有那么重要,了解一下好了,主要还是要多多理解数组指针的运算 最近又把学习c语言提上日程上来了~~~先把我打算看的书都写下来吧,<C语言深度剖析>,<c和指针>系类,<c语言陷阱和缺陷> ...
标红的两行会报错,如果用code::blocks编译的话,它会提示:error: lvalue required as increment operand,意思就是不能改变数组名的值 ...
: 结论2:如果对数组变量使用取地址符&,结果是数组变量本身。 ...
#include <stdio.h> int main() { int a[5]; printf("%d\n", a); printf("%d\ ...