| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1124 人关注过本帖
标题:一个有关数组的间接引用问题
只看楼主 加入收藏
vtanjingwly
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-6-11
结帖率:100%
收藏
 问题点数:0 回复次数:9 
一个有关数组的间接引用问题
要间接引用一个数组 必须要设一个指针变量吗?
如果int a[100];
要引用a[5]  可以用*(a+5)吗?
2016-06-12 20:44
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10587
专家分:43118
注 册:2014-5-20
收藏
得分:0 
有试过吗?
2016-06-12 21:03
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
不知道你想说什么

[此贴子已经被作者于2016-6-12 22:16编辑过]


慢慢调试
2016-06-12 22:09
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
#include<stdio.h>
int main(){
    int a[100]={1,2,3},*p;
    p=a;
*p=a[2];
printf("%#x\n",*p);

}
是这个意思吗?这段代码无错

慢慢调试
2016-06-12 22:28
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
#include<stdio.h>
int main(){
    int a[100]={1,2,3},*p;
    p=&a[2];
*p=(a+2);
程序代码:
printf("%#x\n",*p);

}   
这个不行
error C2440: '=' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\选择排序.cpp(8) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.

选择排序.obj - 1 error(s), 0 warning(s)


										

慢慢调试
2016-06-12 22:32
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
你的意思是不是
指针不通过访问首地址从而能否直接访问数组中任意一个元素的地址吗?

慢慢调试
2016-06-12 22:36
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
#include<stdio.h>
int main(){
    int a[100]={1,2,3},*p;
    p=a;
*p=(a+2);//(a+2)为地址,类型不匹配,出错
printf("%#x\n",*p);

}

慢慢调试
2016-06-12 22:42
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
终于明白了。成功
#include<stdio.h>
int main(){
    int a[100]={1,2,3};
    *(a+2);
printf("%#x\n",a[2]);

}
 选择排序.exe - 0 error(s), 0 warning(s)

慢慢调试
2016-06-12 22:49
apiqqz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:56
专家分:25
注 册:2011-9-2
收藏
得分:0 
看着后来人一步步成长,仿佛看到了我当年什么都不懂,自己钻研看书,一步步过来的影子 可以用*(a+5)引用数组a[5]
2016-06-13 08:33
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
收藏
得分:0 
回复 楼主 vtanjingwly
当然可以的,在计算机内部,数组就是这样执行的
2016-06-14 12:12
快速回复:一个有关数组的间接引用问题
数据加载中...
 
   



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

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