猿问

有关指针的,大神看看

#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;

}


bangmax
浏览 1293回答 2
2回答

MadMarical

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

绯红卷千红

出什么问题?
随时随地看视频慕课网APP
我要回答