交换两个整形变量的数值

#include<stdio.h>
void swap(int *p3,int *p4)//定义swap函数,定义两个指针参数
{
    int t;// 定义一个整形t来做数据交换的中介
    t=*p3;
    *p3=*p4;
    *p4=t;//3步交换
}
main()
{
    int a,b;//定义两个整形变量a,b
    int *p1,*p2;//定义两个指针变量p1,p2
    p1=&a;//指针p1指向a
    p2=&b;//指针p2指向b
    printf("输入a,b的值:") ;
    scanf("%d %d",&a,&b);
    printf("swap函数调用前:%d %d\n",*p1,*p2);
    swap(p1,p2);//调用swap函数
    printf("swap函数调用后:%d %d\n",*p1,*p2);
}

程序运行成功

总结

主函数中的指针变量p1,p2通过调用swap函数向函数中的指针p3,p4传递地址,p3,p4通过地址访问a,b的值并在swap函数内调换,做到利用函数进行调换的效果

当需要调用函数对变量进行修改时,需要利用指针间接访问变量,再对变量进行修改。

时间: 2024-10-27 11:53:32

交换两个整形变量的数值的相关文章

第二次作业——交换两个整形变量的数值

#include<stdio.h> voide swap(int *p,int *q) { int i; i=*p;*p=*q;*q=i; } main() { int a=2,b=9,*p,*q; P=&a;q=&b; swap(p,q); printf("a=%d b=%d",a,b); return 0: } 总结:1:此题只输出 a和b,不输出*p,*q. 2:感觉自己指针还是不会运用,好多知识点还不会,需要查书才能编辑出来. 3:自己打代码的时候太

【c语言】 &nbsp; 交换两个整形变量的值(要求不创建临时变量)

如何不创建临时变量,来交换两个整形变量的值 异或运算 #include<stdio.h> int main() { int num1=12,num2=24;     printf("交换前的变量值");     printf("%d,%d",num1,num2);       num1=num1^num2;       num2=num1^num2;       num1=num1^num2;//异或  printf("\n交换后的变量值&qu

交换两个整形变量

#include<stdio.h> #include<conio.h> int main() { void swap(int *a,int *b);//声明swap函数 int *p1,*p2;//定义两个整形指针 int a,b;//定义两个整形变量 p1=&a; p2=&b;//指向a,b地址 scanf("%d,%d",&a,&b);//输入a,b的值 swap(p1,p2) ;//调用函数 getch(); } void

不借助任何中间变量将两个整形变量的值交换

今天在做题的时候,突然出现一道题,就是不借助中间变量,将两个整形变量的值互换,开始有点懵,这怎么换?后来还是用两个变量不停做加减变换,差不多有十几分钟,才终于凑出来了一种方法,一时兴起,我又从网上找了一下相关的资料,说是竟然有四种方法,我就看了一下,顺便学习一下. 在我们初学阶段,一般是定义一个新的变量,借助它完成交换. 例如:int a,b;a=1; b=2;int t;t=a; a=b; b=t;这种算法易于理解,对初学者来说,一般都是用“空瓶子来回倒换”帮助理解的,而且是赋值语句的经典应用

两个整形变量的内容交换(初)

两个整形变量的内容交换(初) #include<stdio.h> int main() { int a; int b; int tem; tem=a; a=b; b=tem; printf("a=%d",a); printf("b=%d",b); return 0; }

给定两个整形变量的值,将两个值的内容进行交换。

#include <stdio.h>int main(){ int a=1,b=2,t; t=a; a=b; b=t; printf("a,b交换前:"); printf("a=1,b=2\n"); printf("a,b交换后:"); printf("a=%d,b=%d\n",a,b); return 0;}

C语言 实现 给定两个整形变量的值,将两个值的内容进行交换

#include "stdio.h" void main() { int a=1,b=0,i; i=a; a=b; b=i; printf("a=%d\n",a); printf("b=%d\n",b); }

【高逼格系列】使用异或操作符(XOR)交换两数值

异或(exclusive OR)作为4种逻辑操作符之一,相对其他3种(OR/AND/NOT)来说,出场的次数非常少,是因为在日常开发中能用到它的场景本来就不多.对笔者来说,目前接触到场景只有交换两个数值时才会用到. Java Code: 1 int a = 5; 2 int b = 95; 3 System.out.println(a + ", " + b); 4 5 a ^= b;//等价于 a = a ^ b; 6 b ^= a; 7 a ^= b; 8 System.out.pr

Java 交换两个变量的数值

一.参数传递方法 为解决标题问题,首先介绍参数传递方法.目前各类程序设计语言的参数传递方法主要有三种: 按值传递 按引用传递 按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值:按引用传递表示方法(函数)接收的调用者提供的变量地址:按指针传递表示方法(函数)接收的是调用者提供的指针的拷贝,不改变指针的值和地址,但可以改变指针所指向的地址. 二.Java参数传递方法 Java提供的参数传递方法,很遗憾只有一种,按值传递.也就是说,方法得到的是所有参数值的一个拷贝