
C++问题,高手来______________________
#include<stdio.h>voidfun(int*a,int*b){int*c;c=a;a=b;b=c;}voidmain(){intx=3,y=5,*p=&x,...
#include <stdio.h>
void fun(int *a,int *b)
{int *c;
c=a;a=b;b=c;
}
void main()
{
int x=3,y=5,*p=&x,*q=&y;
fun(p,q);printf("%d,%d,",*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q)
}
程序运行后的结果是_________;
为什么?详细点,在线等,谢谢大家了 展开
void fun(int *a,int *b)
{int *c;
c=a;a=b;b=c;
}
void main()
{
int x=3,y=5,*p=&x,*q=&y;
fun(p,q);printf("%d,%d,",*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q)
}
程序运行后的结果是_________;
为什么?详细点,在线等,谢谢大家了 展开
2个回答
展开全部
3,5,3,5;
上面最后一句少打了一个";" 分号;
分析原因:你的函数fun只是交换了两个指针变量指向的地址,并没有交换指针指向地址的值。也就是函数执行后你只是让a指向了b,b指向了a,它们原来指的东西都没有变,并且你这个修改指向在函数返回后又不会起作用,因为a b作用域的问题。
你如果想交换a b指向的值的内容,要修改fun 改为:
void fun(int *a,int *b)
{
int c;
c=*a;*a=*b;*b=c;
}
就行了
上面最后一句少打了一个";" 分号;
分析原因:你的函数fun只是交换了两个指针变量指向的地址,并没有交换指针指向地址的值。也就是函数执行后你只是让a指向了b,b指向了a,它们原来指的东西都没有变,并且你这个修改指向在函数返回后又不会起作用,因为a b作用域的问题。
你如果想交换a b指向的值的内容,要修改fun 改为:
void fun(int *a,int *b)
{
int c;
c=*a;*a=*b;*b=c;
}
就行了

2023-06-12 广告
单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询