| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1183 人关注过本帖
标题:VS中数组名怎么理解?
只看楼主 加入收藏
暮成雪
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
VS中数组名怎么理解?
程序代码:
int a[10]; 
//在VS2013中 a与&a的值是一样的,&a不是代表a存放的地址吗?为什么会是一样的呢?
int b[5][10];
//在VS2013中 b与&b与*b与b[0]值都是一样的,又该怎么理解呢

//--望大神帮帮忙 解释下 不好理解啊
2016-01-02 10:03
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:2 
vs这样规定的呀!
2016-01-02 11:20
K子凌
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2015-12-24
收藏
得分:5 
数组名实际上被看成该数组的起始位置。也就是数组名作为一个指向该数组的指针存在。
即a指向a【】的起始位置,也就是a【0】的地址。
所以a=&a【0】。
显然*a=a【0】。
2016-01-03 12:46
foxeer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
收藏
得分:3 
露珠,你截图上的说的没错,建议看一下数组与指针的关系,应该就明白了
2016-01-03 23:19
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:10 

C和C++将数组名解释为地址。但又不是任何情况下都是这样,比如使用操作符sizeof的时候,对于int a[10];sizeof a表示的是整个数张的长度,对于int* p,p又指向数组时,此时的sizeof p仍然是指针的长度,而不是数组的长度。

int a[10];
//在VS2013中 a与&a的值是一样的,&a不是代表a存放的地址吗?为什么会是一样的呢?-------------a 被解释为地址,确切的说是a[0]的地址,而&a是求整个数组a[10]的地址,恬好和a[0]的地址一样。
int b[5][10];
//在VS2013中 b与&b与*b与b[0]值都是一样的,又该怎么理解呢---------这个不用再说了吧,b是第一个无素的地址,&b是整个二维数组的地址,*b是第一行的地址,b[0]也是第一行的地址。


[此贴子已经被作者于2016-1-4 10:36编辑过]

2016-01-04 10:00
快速回复:VS中数组名怎么理解?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021864 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved