Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4474115
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2008-05-06 18:51:45

请看如下代码,a和&a的内容相同,为什么类型不同呢?

C/C++ code
#include<iostream> #include <typeinfo> using namespace std; void main() { int a[6]={1,2,3,4,5,6}; int *q; int (*p)[6]; cout<<" a type="<<typeid(a).name()<<endl; cout<<" &a type="<<typeid(&a).name()<<endl; cout<<"a="<<a<<endl; cout<<"&a="<<&a<<endl<<endl; }
a:是数组的首地址即&a[0]
&a:以整个数组为单位取其地址.
a+1是a+sizeof(a[0])
&a+1是a+sizeof(a)
a+1

&a+1
的值是不一样的
a+1是给a加上一个sizeof(int)
而&a+1则是给a加上6×sizeof(int)
 
阅读(2767) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~