| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 231 人关注过本帖
标题:求助指针问题
收藏  订阅  推荐  打印
wandou08
Rank: 1
等级:新手上路
帖子:19
积分:308
注册:2008-9-22
求助指针问题

main()
{.......
double t[3};


   t[i]=i;
det(t)
..........
}
det(double *t)
{int i;
  double t1[3];
  t1=t;
  for(i=0;i<3;i++)
  t1[i]=i+1;
  }
我想问一下,t1[i]变了,这时候main函数中的t[i]也变了吗?
如果t1=t改成:
for(i=0;i<3;i++)t1[i]=t[i];那么最终main函数中的t[i]会变吗?是否还是原来的值?
请高手帮忙谢谢!
2008-10-5 10:15
wandou08
Rank: 1
等级:新手上路
帖子:19
积分:308
注册:2008-9-22

落下一句main函数是这样的:

main()
{.......
double t[3};
for(i=0;i<3;i++)
t[i]=i;
det(t)
..........
}
2008-10-5 10:18
blueboy82006
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:1212
积分:12084
威望:16
来自:幻想世界
注册:2007-7-23

你学过 变量 作用域和生存周期 的知识吗?
建议你好好学一下...

闭关修炼中!......
2008-10-5 12:16
ml232528
Rank: 2
等级:注册会员
帖子:172
积分:1910
威望:1
注册:2007-7-23

det(double *t)
{int i;
  double t1[3];
t1=t;//能编译通过吗 t1好像是常量
  for(i=0;i<3;i++)
  t1[i]=i+1;
  }

改成这样试试
det(double *t)
{
  int i;
  for(i=0;i<3;i++)
  t[i]=i+1;
}

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2008-10-5 13:02
wandou08
Rank: 1
等级:新手上路
帖子:19
积分:308
注册:2008-9-22

多谢各位热心的帮助!
t1=t,我觉的是将t[]首地址t[0]传给t1,这样就能够实现t1指向t中的对象。
我看过那些,但还是不明白,所以想主要问一下,t1=t,赋值的是地址,所以当t1的元素变化时,t的元素变吗?
2008-10-5 13:24
飞天舞xsj
Rank: 2
等级:注册会员
帖子:45
积分:668
来自:华中科技大学
注册:2006-12-25

t1=t,这本身就有问题,楼主好像有关指针的有效传递没搞清楚啊

2008-10-5 15:46
kakaqq
Rank: 2
等级:注册会员
帖子:49
积分:600
威望:1
注册:2008-10-7

引用:
飞天舞xsj 在 2008-10-5 15:46 的发言:

t1=t,这本身就有问题,楼主好像有关指针的有效传递没搞清楚啊
他就是这问题没搞清楚。
2008-10-7 21:10
冰烨
Rank: 2
等级:注册会员
帖子:120
积分:1364
威望:1
来自:`修罗殿`
注册:2007-10-30

double t1[3];
  t1=t;

这本身就是错误的,t1是个数组,而数组名可看成一个常指针,const型的是不能被赋值的。

当你这样调用det(t)时候,数组t会被强制解释成指针作为实参传入。根据指针本质,存放地址,所以,det的形参t便也存放了原数组的首地址
所以进入det后,只要对det中的t操作就是对main中的t操作。但是记住数组是不能能过数组名来赋值的。

要么死去,要么奋斗!
跨平台C/C++商海方舟 QQ群: 21044833!
2008-10-9 09:19
冰烨
Rank: 2
等级:注册会员
帖子:120
积分:1364
威望:1
来自:`修罗殿`
注册:2007-10-30

for(i=0;i<3;i++)t1[i]=t[i];那么最终main函数中的t[i]会变吗?是否还是原来的值?
如果是这种情况的话,t1会是在det中的另一空间,只是值与t的相等,所以改变t1[i]对t[i]没有影响

要么死去,要么奋斗!
跨平台C/C++商海方舟 QQ群: 21044833!
2008-10-9 09:22
共有 230 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054277 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved