| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1022 人关注过本帖
标题:指针,,头痛,求解!
只看楼主 加入收藏
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
回复 8楼 莣忧
*p1与a没有区别啊,*p1变了,a也就变了啊
2010-06-03 17:02
bnbplayer
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2010-3-27
收藏
得分:0 
指针的 本质不过就是从地址取数值嘛。。。

只要记得* P是取内容,就没什么好难的了啊
2010-06-03 21:13
z9895512
Rank: 2
等 级:论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
收藏
得分:0 
回复 8楼 莣忧
int main()
{
  int a = 10, b = 11;
  int *p1, *p2, temp;
  p1 = &a;
  p2 = &b;
  temp = *p1;
  *p1 = *p2;
  *p2 = temp;
  printf("a=%d,b=%d\n", a, b);
  printf("p1=%d,p2=%d\n", *p1, *p2);
    return 0;
}
在这里我不懂为什么a,b的值会互调?
int main()
{ int a=10,b=11;
  int *p1,*p2,*temp;
  p1=&a;
  p2=&b;
  temp=p1;
  p1=p2;
  p2=temp;
   printf("p1=%d,p2=%d\n",*p1,*p2);
  printf("a=%d,b=%d\n",a,b);
  }


主要点:第一个team是定义为‘整型’但不是指针变量。第二个函数定义team时,前面多了‘*’ 也就是定义为‘整型的指针变量’,俩个函数中的p1,p2都是指针变量。
第一个函数
temp = *p1;
  *p1 = *p2;
  *p2 = temp;
第二个函数
temp=p1;
  p1=p2;
  p2=temp;
第一个函数的team是整型,接收的是*p1的值。而*p1等同于a.相当于team=a.所以就把a的值与b对换了。
而第二个函数的team为指针变量,储存的是a变量的地址而不是a变量的值。
做转换时是把p1储存的a的地址与p2储存的b的地址对换。结果是a的地址存放在了p2里,而b的地址存放在了b1里。而不是a与b的值对换。
希望你能看懂~
2010-06-03 21:55
快速回复:指针,,头痛,求解!
数据加载中...
 
   



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

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