int a[10]中a=&a=&a[0]吗?

ZhangStanford 2007-12-21 08:34:34
int a[10]中a=&a=&a[0]吗?不等的话,&a是什么?
...全文
178 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhangStanford 2007-12-23
  • 打赏
  • 举报
回复
谢谢各位,昨天我都弄明白了!!!
mymtom 2007-12-23
  • 打赏
  • 举报
回复
输出结果为:
a = 00000000287088e0H
&a = 00000000287088e0H
&a[0] = 00000000287088e0H
mymtom 2007-12-23
  • 打赏
  • 举报
回复
同意二楼的说法:

/*
* array_addr.c
* by mymtom
* 2007-12-23
*/
#include <stdio.h>

#define PRINT_PTR(p) \
(void)printf("%s\t = %0*xH\n", #p, sizeof(void *) << 1, p);
int main(void)
{
int a[10];

PRINT_PTR(a);
PRINT_PTR(&a);
PRINT_PTR(&a[0]);
return 0;
}

输出结果为:

a = 00000000287088e0H
&a = 00000000287088e0H
&a[0] = 00000000287088e0H
csdn5211 2007-12-22
  • 打赏
  • 举报
回复
to CyanLeaf:并不完全一样,a还包括了类型信息。
lishiyong110 2007-12-22
  • 打赏
  • 举报
回复
应该相同把 但是一般应该不用&a把
一生有爱1980 2007-12-22
  • 打赏
  • 举报
回复
a=&a[0],&a不能这样用吧,因为a已经是代表数组首地址了,再加个&什么意思,没见过
visame 2007-12-22
  • 打赏
  • 举报
回复
a==&a==&a[0]
CyanLeaf 2007-12-22
  • 打赏
  • 举报
回复
to csdn5211 :

原来如此,多谢赐教

不过我想LZ应该是想问的3个“值”是否相同
calss_cyl 2007-12-21
  • 打赏
  • 举报
回复

LZ写清楚点 ,你想问的是 == ,不是=,专业点,谢谢。
yxwsbobo 2007-12-21
  • 打赏
  • 举报
回复
值相同类型不同哈
CyanLeaf 2007-12-21
  • 打赏
  • 举报
回复
全部是一样的

对于一个数组来说,

数组名保存的是这个数组的起始地址

取数组地址也是这个数组的起始地址

同时第一个元素的地址,也是这个数组的起始地址

PS:像这种试一下就能得到答案的问题LZ最好不要问,正如1楼的兄弟说的,编译器将告诉你最真实的答案

虽然勤学好问是个好习惯,但是事无巨细的拿着就问就不太好了,呵呵
csdn5211 2007-12-21
  • 打赏
  • 举报
回复
楼上正解,&a和a的值相同,但是a+1和&a+1的值不同
xhd3767 2007-12-21
  • 打赏
  • 举报
回复
a=&a[0]是数组的起始地址,这个是里面元素类型的大小
&a是数组的地址 也就是说&a+1是加了整个数组的大小


貌似是这样
tangshuiling 2007-12-21
  • 打赏
  • 举报
回复
楼主何不自己设计个小程序试一下!编译器告诉你的是最真实的

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧