形参的数值改变不会改变实参的值
来源:互联网 发布:三国杀卡牌制作软件 编辑:程序博客网 时间:2024/06/06 18:07
输入a、b两个整数,用指针按先大后小的顺序输出a和b
正确代码:#include<stdio.h>
void swap(int *p1,int *p2){
int temp;
temp=*p1;
*p1=*p2;
*p2= temp;
}
void main(){
int *max,*min,a,b;
printf("请输入整数a:");
scanf("%d",&a);
printf("请输入整数b:");
scanf("%d",&b);
max=&a;
min=&b;
if(*max<*min){
swap(max,min);
}
printf("max=%d\nmin=%d\n",*max,*min);
}
错误代码如下:
(1)
void swap(int *p1,int *p2){
int *temp;
temp=p1;
p1=p2;
p2=temp;
}
(2)void swap(int p1,int p2){
int temp;
temp=p1;
p1=p2;
p2=temp;
}
形参值的改变不能使实参的值随之改变,在函数结束时,形参会释放,不可能通过调用函数来改变实参指针变量的值,但是可以改变实参指针变量所指的值(即正确做法)。
(3)void swap(int *p1,int *p2){
int *temp;
*temp=*p1;
*p1=*p2;
*p2=*temp;
}
*temp=*p1;是错误的,因为由于未给temp赋值,因此temp并无确定的值(其值不可预见),因此temp所指向的单元也不可预见,这个未知的存储单元可能存储着有用的数据,这样可能破坏系统正常的工作状况。故程序无法运行
- 形参的数值改变不会改变实参的值
- 图解为什么形参的变化不会改变实参的值?
- 形参值的改变不会影响对应的实参的值
- 形参的改变如何影响实参
- 参数传递---形参改变实参指针变量的值
- JAVA里怎么样在调用方法时同时改变实参的值 (形参改变实参)
- 不能企图通过改变指针形参的值而使指针实参的值改变
- C语言函数传递中形参的变化不会改变实参的值
- 函数不能改变实参的值
- 以指针作为函数参数,不能改变实参指针变量的值从而改变实参值
- java中最经典的实参和形参及引用值的改变
- 实参和形参指针做函数参数时,如何改变main函数变量的值
- 形参改变实参的值不变(C语言基础知识加例题讲解)
- 不能通过改变形参指针的值(形参所指向的地址)来改变实参指针的地址,实现改变实参指针所指向地址变量的值。
- c++指针使用形参改变实参
- 改变实参
- String 与 StringBuffer区别string的值永远不会改变!
- GPS经纬度一直不会改变的解决方法
- WindowsPhone7与PC平台使用TripleDES加解密
- 存储 问题
- title1_test1
- C# 解决DrawImage绘制图片拉伸产生渐变
- Jsp:useBean使用详解
- 形参的数值改变不会改变实参的值
- 全面解析数据的网络传输
- eclipse android adb.exe 启动错误解决方法
- VC Slider控件,根据鼠标单击位置来显示滑块位置!
- MD5算法-Message Digest
- 【黑马程序员】java基础加强-------注解(annotation)
- 使用getIdentifier()获取资源Id
- Android应用软件开发如何盈利
- linux查看二进制文件