
void change(int *x,int *y) { int z; z=*x; *x=*y; *y=z; printf("%d,%d\n",*x,*y); }
5个回答
展开全部
就是交换*x与*y变量的值,然后再打印交换后的二个值。
在程序中要交换二个int变量a和b的值,就用change(&a,&b); 实现。在change函数中实现的交换结果,对于主调函数中的变量a和b,也能得到保留。
在程序中要交换二个int变量a和b的值,就用change(&a,&b); 实现。在change函数中实现的交换结果,对于主调函数中的变量a和b,也能得到保留。
展开全部
这个函数实现两个指针所指向的int对象的数值的交换。
z就是一个临时变量,作为中间值存在的。
比如说*x = 11,*y = 22,那么这三条语句等价于:
z = 11;
*x = 22;
*y = z = 11;
z存贮*x的值作为过渡,否则直接使用*x = *y; *y =*x是不能实现交换的。
希望能够帮到你。
z就是一个临时变量,作为中间值存在的。
比如说*x = 11,*y = 22,那么这三条语句等价于:
z = 11;
*x = 22;
*y = z = 11;
z存贮*x的值作为过渡,否则直接使用*x = *y; *y =*x是不能实现交换的。
希望能够帮到你。
追问
可是*x是一个指针啊,它代表的应该是一个地址吧,那为什么可以付给一个整形数据呢?
追答
x是int *类型的变量,它是一个指针。*x是取x这个指针指向对象的值。
可以printf("%d", x); printf("%d", *x);看看,你就明白什么是指针什么是值了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
z=*x;
*x=*y;
*y=z;
这三句的意思就是交换x和y存放的值
因为x和y是指针类型 所以 要用*x 和*y 来取得里面存放的值
而z是一个中间变量 用来临时存放*x 或*y的值得
你也可以不用中间变量完成交换
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
*x=*y;
*y=z;
这三句的意思就是交换x和y存放的值
因为x和y是指针类型 所以 要用*x 和*y 来取得里面存放的值
而z是一个中间变量 用来临时存放*x 或*y的值得
你也可以不用中间变量完成交换
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a; int *b;
a是整形变量,b为指向整形变量的指针,所以可以:b=&a;, &就是取变量的地址!那么如何取得指针所指向地址的内容呢?就需要使用*,*b就是b所指向地址的值,也就是a的值!
所以:z=*x,就是将x所指向地址的值赋给z;
*x=*y就是讲y指向地址的值赋给x所指向的地址,比如x指向a,y指向b,那么就是将b的值赋值给a;
a是整形变量,b为指向整形变量的指针,所以可以:b=&a;, &就是取变量的地址!那么如何取得指针所指向地址的内容呢?就需要使用*,*b就是b所指向地址的值,也就是a的值!
所以:z=*x,就是将x所指向地址的值赋给z;
*x=*y就是讲y指向地址的值赋给x所指向的地址,比如x指向a,y指向b,那么就是将b的值赋值给a;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-29
展开全部
引用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询