标题:[求助]一个简单程序,高手帮忙看看
只看楼主
君子
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-11-23
 问题点数:0 回复次数:5 
[求助]一个简单程序,高手帮忙看看

#include<iostream.h>
void main()
{
int p[][3]={{1,2,3},{4,5,6},{7,8,60}};
int *q = p[1]+4;
int *t = p[1]+5;
cout<<*q<<endl;
cout<<*t<<endl;
}
这个程序没错,输出
8
60
#include<iostream.h>
void main()
{
int p[][3]={{1,2,3},{4,5,6},{7,8,60}};
int *q ;
int *t ;
q = p[1]+4;
t = p[1]+5;
cout<<*q<<endl;
cout<<*t<<endl;
}
这个程序的输出是
3608008
2367460
我认为这两个程序应该一样的结果啊.为什么会这样?
还有,
#include<iostream.h>
void main()
{
int p[][3]={{1,2,3},{4,5,6},{7,8,60}};
int *q ;
int *t ;
q = (*p)+2; //应输出7才对啊,但输出的是60.
// t = p[1]+5;
cout<<*q<<endl;
//cout<<*t<<endl;
}

搜索更多相关主题的帖子: include 
2005-11-25 18:05
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
得分:0 
q = (*p)+2; //应输出7才对啊,但输出的是60.
试试这个
q = *( p + 2 ) ;

动于心而静如水
2005-11-25 19:30
君子
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-11-23
得分:0 
以下是引用poppylx在2005-11-25 19:30:00的发言:
q = (*p)+2; //应输出7才对啊,但输出的是60.
试试这个
q = *( p + 2 ) ;

我在我机子上试了试,输出
3607920


在计算机门外徘徊着.......
2005-11-25 20:28
nFox
Rank: 1
等 级:新手上路
威 望:1
帖 子:28
专家分:0
注 册:2005-11-16
得分:0 
三个偶都试了....前两个输出8 和60...可能是你的编译器的问题...偶用的是VC 6.0

第三个输出3...也没问题
因为 q = (*p)+2;

(*p)返回的是p[0][0]的地址,故q被赋值为 p[0][2]的地址,*q的值为3







天行健,君子以自强不息;地势坤,君子以厚德载物
2005-11-25 22:27
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
楼主,你的程序没有问题,我用Dev 和VC 测试过了。如果你那边运行出错,那么请下载DEV,然后再试。

这样的程序应该不是操作系统的系统,不知道你用的什么编译器,如果这个问题出在编译器身上,也让我很吃惊。如果你用Dev 测试后,程序正确,请将原来的编译器删除。


第一题的输出为 8  60

第二题的输出为 8  60

第三题的输出为 3

[此贴子已经被作者于2005-11-26 5:07:48编辑过]


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-11-26 05:06
君子
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-11-23
得分:0 
我用的是VC啊,不过是盗版的,可能会有问题吧...
谢谢大家这么热心的帮我.

在计算机门外徘徊着.......
2005-11-26 10:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-35146-1-1.html




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

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