| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:两个数组指针的正误
只看楼主 加入收藏
cclearner
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-6-28
收藏
 问题点数:0 回复次数:5 
两个数组指针的正误
#include <iostream>
using namespace std;
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
int i;
for(i=0; i<10; i++)
cout<<*(a+i*sizeof(int))<< " ";
cout<<endl;
}

#include <iostream>
using namespace std;
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
int i;
for(i=0; i<10; i++)
cout<<*(a+i)<< " ";
cout<<endl;
}

这两个写法,哪个对?

按照运行结果看是第二个啊
搜索更多相关主题的帖子: 正误 指针 int cout std 
2007-07-05 17:51
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 

1st version is wrong.

a --- gives the address of item
a + 1 give the address of 2nd item.
a + 1*sizeof(int) = a +4 = 5th item.


I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-07-05 19:40
cclearner
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-6-28
收藏
得分:0 

Thanks a million!
But English......
Mine is very poor!


好人哪,一群好人哪!!!!!!
2007-07-05 20:08
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

哈哈... cclearner... 有意思哦...
第一个版本若在汇编里是对的.. 因为汇编的偏移单位固定为1 byte
版本2是正确的..因为C里面偏移实际上不是真正的偏移.. 它的偏移单位根据变量的具体类型来决定,
相当于自带了 *sizeof(数据类型)
...这样的..


女侠,约吗?
2007-07-05 22:35
cclearner
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-6-28
收藏
得分:0 
嗯,懂了
两个帖子参照着看,非常得明白

好人哪,一群好人哪!!!!!!
2007-07-05 23:33
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
懂了就好... 这个和你问的那个引用问题差不多..

女侠,约吗?
2007-07-05 23:46
快速回复:两个数组指针的正误
数据加载中...
 
   



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

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