| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 465 人关注过本帖
标题:书上有这么一句话,大侠来帮我解释一下好吗?
只看楼主 加入收藏
vcx
Rank: 2
等 级:论坛游民
帖 子:61
专家分:81
注 册:2009-9-15
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
书上有这么一句话,大侠来帮我解释一下好吗?
“不可能通过调用函数来改变实参指针变量的值,但可以改变实参指针变量所指变量的值”
前半句知道,后半句是为什么呢?
搜索更多相关主题的帖子: 解释 
2009-10-15 10:55
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:5 
我的理解是,你设定了一个指针变量,比如 int *p,原来*p=1;但经过调用函数后可能*p=2;指针变量p的存储地址如0000H没有发生改变,只是该地址里放的数据变了。
p====>0000H              调用函数后   p====>0000H   
       (1)                                   (2)
个人理解~
2009-10-15 11:09
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:5 
那句话已经很明白了,不理解看代码:
f(int *p)  
{  
  *p=2;  /* 改变p所指里的值 */  
  
  p++;  /* 这里移动p的指向 */  
}  


int main(void)  
{  
 int a,*p=&a;  /* p指向a */  
  
 printf("p=%x\n",p);  /* 输出p值,也就是a的地址 */
 a=1;    /* a等于1 */  
 f(p);  
 printf("a=%d p=%x\n",a,p);  /* 调用f函数后a值变了,p值没变,看这结果再去理解那句话的意思 */  
}

努力—前进—变老—退休—入土
2009-10-15 11:30
vcx
Rank: 2
等 级:论坛游民
帖 子:61
专家分:81
注 册:2009-9-15
收藏
得分:0 
今天看了一下c primer plus 上面的10.6节上面提到了。突然一下子明白了.说的比较细
谢谢楼上的两位
2009-10-16 15:50
快速回复:书上有这么一句话,大侠来帮我解释一下好吗?
数据加载中...
 
   



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

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