为了账号安全,请及时绑定邮箱和手机立即绑定

有关指针的,大神看看

有关指针的,大神看看

C C++
bangmax 2016-01-28 11:53:49
#include <stdio.h>int main(){  int *p1,*p2,*p,a,b;  printf("integer numbers:"); scanf("%d,%d",&a,&b);   p1=&a;    p2=&b;  if(a<b)  { /* p=p1; p1=p2; p2=p;*/ p1=&b;//为什么这样就出问题? p2=&a; }  printf("a=%d,b=%d\n",a,b); printf("%d,%d\n",*p1,*p2);  return 0;}
查看完整描述

2 回答

已采纳
?
MadMarical

TA贡献79条经验 获得超122个赞

你好。我想你的问题是出于,为何输出的a,b实际上并没有交换。理由是,你只改变了指针的指向,并未改变a,b内存地址中存储的值。而如果使用注释段内的代码,a,b内存地址中存储的值是进行了交换的。

查看完整回答
2 反对 回复 2016-02-02
?
绯红卷千红

TA贡献6条经验 获得超1个赞

出什么问题?

查看完整回答
反对 回复 2016-02-02
  • 2 回答
  • 0 关注
  • 1292 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信