设为首页 加入收藏

TOP

C语言--对数组地址的解析
2014-11-23 21:58:16 来源: 作者: 【 】 浏览:13
Tags:语言 对数 地址 解析

在C编程中,我们进程会用到数组,这看起来很简单,因为,数组就是存储相同类型元素的集合嘛,不过,当你还没考虑到数组的地址问题时,一切都是简单的,如果你接触了数组中的地址概念,也许你会改变你的想法。

下面,我列出几个例子,看看这些例子输出的会是什么:

首先给出数组的定义:int a[10];
1. cout< 2. cout<<&a< 3. cout< 4. cout<<&a +1<

是不是有点迷惑了?

好吧,现在,我来一一解释这些东西:

1.cout<

当我们定义了一个数组时,我们给数组起了一个名字,叫做“a”,那么a指代的就是系统给我们分配的那一块内存(这个例子中是40个字节),那么自然而然,a代表的就是这块内存的起始地址

2. cout<<&a<

很明显,这是一个意思,对a进行取地址操作,得到的仍然还是那块内存的起始地址

3. cout<

这时,我们对起始地址进行加1操作,判断结果是什么,我们需要知道a能存储的是什么类型的数据,对于这个例子,a中存储的整型数据,所以,它指代的是a中第二个元素的地址值,是对于起始地址加4个字节的结果值

4. cout<<&a + 1<

这个可能是最难理解的一句话,我们在想得到结果之前,还需要看a代表的是什么,a代表的是能存储10个整型变量的一段内存,所以,对&a进行加1操作,得到是下一个能存储10个整型变量的内存的首地址

下面,给出测试的代码和效果截图:

#include    
using namespace std;  
  
int main(void)  
{  
  
    int a[10];  
  
    cout<
using namespace std;

int main(void)
{

	int a[10];

	cout< 
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言中结构体赋值问题的讨论 下一篇uva 10387 Billiard 几何 撞球

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: