300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 交换两个整型变量的数值

交换两个整型变量的数值

时间:2022-03-29 15:18:28

相关推荐

交换两个整型变量的数值

#include<stdio.h>

#include<conio.h>

main()

{

void swap(int *p1,int *p2);//定义一个函数作用是交换两个整型变量的数值

int x,y;//定义整型变量x,y

int *a1,*a2;//定义整型指针a1,a2

printf("任意输入两个数值:");

scanf("%d,%d",&x,&y);//任意输入两个数值赋值到x,y中

a1=&x;

a2=&y;

swap(a1,a2);//交换 a1,a2

printf("%d,%d",*a1,*a2);

getch();

return 0;

}

void swap(int *p1,int *p2)//调用swap交换函数,交换两个变量的值

{

int p;

p=*p1;

*p1=*p2;

*p2=p;

}

我认为本题的重点是在于对*p及p的理解。 *p是指针,作用是存放变量的地址而p是地址所储存的内容。 关键是子函数调用时交换的应用,注意是变量值的交换不是指针指向问题。

输出结果 任意输入两个数值:1,2

2,1

void swap(int *p1,int *p2)

{

int *p;

*p=*p1;//此语句有问题

*p1=*p2;

*p2=*p;

}

*p1就是x,是整型变量。而*p是指针变量p所指向的变量。但p中并无确定的地址值,它的值不可预见。*p所指向的单元也不可预见。

因此对*p赋值可能会破坏系统的正常工作状况。

void swap(int *p1,int *p2)

{

int *p;

p=p1;

p1=p2;

p2=p;

}

C语言中实参和形参之间的数据传递是单向的“值传递方式",指针变量作为函数参数也要遵循这个规则。调用函数不可能改变实参指针变量的值,但是可以改变实参指针变量所指变量的值。

#include<stdio.h>int comp(int*x,int*y){if(*x>*y) return *x;elsereturn *y;}int main(){int x,y,*p1,*p2;scanf("%d,%d",&x,&y);p1=&x;p2=&y;printf("max=%d\n",comp(p1,p2));return 0;}

1,2

max=2

--------------------------------

Process exited after 13.7 seconds with return value 0

请按任意键继续. . .

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。