| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 574 人关注过本帖
标题:c++指针函数引用问题 菜鸟提问。
只看楼主 加入收藏
narutosusdo
Rank: 2
等 级:论坛游民
帖 子:45
专家分:25
注 册:2011-5-30
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:3 
c++指针函数引用问题 菜鸟提问。
#include "stdafx.h"
#include<iostream.>;
using namespace std;
int a(int *b,int *c){
  int i;
  i=*b;
  *b=*c;
  *c=i;
  return(i=*b+*c);
}
void main(){
  int e=1,f=2,g;
  int *h,*j;
  h=&e,j=&f;
  g=a(h,j);
  cout<<e<<"  "<<f<<"  "<<g<<endl;
  cin>>e;
}   这段程序引用函数a(),形式参数为指针类型,可是如改为a(int b,int c)就不能交换了  为什么?int *b跟int b,这里的*b和b不是一个性质的么 都表示指针指向的对象 怎么结果就不一样了?
搜索更多相关主题的帖子: include return 
2011-11-08 10:23
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:0 
这是传说中的传址调用
2011-11-08 13:46
jcw08120110
Rank: 8Rank: 8
来 自:南京
等 级:蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
收藏
得分:20 
关键你传递的不是e啊 而是&e  也就是e的地址嘛~ 函数根据这个e的地址里面的东西进行操作 那么e的值也就改变了嘛!意思就是a(int *b,int *c) int *b=&e;  改变*b  e 也就改变了!
如果传递的是e 也就是直接传递数据a(int b,int c) 意思就是  int b=e;int c=f; 那么对b,c的操作怎么可能影响到e,f呢?

君生我未生 我生君以老
2011-11-08 14:46
鑫乐源
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:27
专家分:150
注 册:2011-10-20
收藏
得分:0 
int *b // *b是定义一个名为b的int指针

*b = *c // *b是解引用

不要和编译器比智商。
2011-11-08 17:43
快速回复:c++指针函数引用问题 菜鸟提问。
数据加载中...
 
   



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

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