精华内容
下载资源
问答
  • 利用指针实现两个变量的值交换

    千次阅读 2019-03-05 23:31:01
    更好的理解指针 #include<iostream> using namespace std; void swap_1(int a, int b)//无法实现交换 { int flag; flag = a; a = b; b = flag; } void swap_2(int *a, int *b)//在函数中能实现...

    更好的理解指针

    #include<iostream>
    using namespace std;
    void swap_1(int a, int b)//无法实现值交换
    {
          int flag;
          flag = a;
          a = b;
          b = flag;
    }
    void swap_2(int *a, int *b)//在函数中能实现值交换,但无法返回主函数中
    {
          int *flag;
          flag = a;//改变地址无法改变指针指向的内容
          a = b;
          b = flag;
          cout << *a<<" " << *b << endl;;
    }
    void swap_3(int *a,int *b)//可以实现值的交换
    {
          int flag;
          flag = *a;
          *a = *b;
          *b = flag;
    }
    int main()
    {
          int a, b;
          cin >> a >> b;
          swap_1(a, b);
          cout << a<<" " << b << endl;
          swap_2(&a, &b);
          cout << a <<" "<< b << endl;
          swap_3(&a, &b);
          cout << a << " " << b << endl;
          return 0;
    }

    在这里插入图片描述

    展开全文
  • C语言入门:指针变量作为函数参数实现变量交换值 对输入的两个整数a,b,用指针变量作为函数参数,交换a和b的值。 ####输入 两个整数a b ####输出 输出用函数交换处理后的值a b ###样例输入 1 2 ####样例...

    C语言入门:指针变量作为函数参数实现两变量交换值


    对输入的两个整数ab,用指针变量作为函数参数,交换ab的值。

    ####输入

    两个整数a b

    ####输出 输出用函数交换处理后的值a b

    ###样例输入

    1 2

    ####样例输出

    2 1 

    #include<stdio.h>
    int main(void)
    {
    	int a,b;
    	scanf("%d%d",&a,&b);
    
        printf("%d %d",b,a);
    
        return 0;
    }

     

    展开全文
  • C++中交换两个变量的值的方法

    千次阅读 多人点赞 2019-11-05 18:21:03
    即不能通过将变量名传入函数的方式进行交换,因为这种方式是将值进行拷贝后作为参数传入函数,也就是说函数内部使用的拷贝的值,在函数执行完后就会销毁,而不是对变量的原值进行操作。 而在C++中需要通...

    首先,需要说明的是,在C++语言中,不能使用下面的方式传值:

    template<class T>
    void swap(T a,T b){
    	T temp=b;
    	b=a;
    	a=temp;
    }
    

    即不能通过将变量名传入函数的方式进行交换,因为这种方式是将值进行拷贝后作为参数传入函数,也就是说函数内部使用的拷贝的值,在函数执行完后就会销毁,而不是对变量的原值进行操作。
    而在C++中需要通过以下方式交换两个变量的值,下面详细介绍。

    方法一:传指针的方式

    在C++中,可以通过传入两个变量的地址来进行交换,这样在定义交换函数时,需要将参数定义为指针。下面就是其示例。
    实现实例:

    //方式一:传指针
    template<class T>
    void swap1(T *p1,T *p2){
        T temp = *p1; //temp的值为p1所指向的值
        *p1 = *p2;    //*p1的值为p2所指向的值
        *p2 = temp;   //*p2的值为temp所指向的值,即为temp所指向的值p1
    }
    //测试
    int main(){
        int a=10;
        int b=-23;
        swap1(&a,&b); //这就是调用方法的示例
        cout<<a<<","<<b;
        return 0;
    }
    

    注:此方法在调用时需要传入地址,即要传入&变量名

    方法二:通过定义宏的方式实现

    也可以通过在函数头部定义宏的方式实现,但是这里需要传入3个变量,其中一个作为中间变量,这种方式在C语言中常用。
    实现实例:

    #define SWAP2(a,b,temp)((temp)=(a),(a)=(b),(b)=(temp)) //定义宏
    int main(){
    	int a=15;
    	int b=-56
    	int temp;
    	SWAP2(a,b,temp);   
    	cout<<a<<";"<<b<<endl; //此时的结果为-56;15
    }
    

    方法三:用引用进行交换

    用引用交换也就是用别名交换
    实现实例:

    template<class T>
    void swaps(T &a,T &b){
    	T temp = a;
    	a = b;
    	b = temp;
    }
    int main(){
    	int a=-2;
    	int b=16;
    	swaps(a,b);
    	cout<<a<<endl<<b; //现在a为16,b为-2
    	return 0;
    }
    

    方法四:使用C++自带的交换函数

    实例:

    int main(){
    	int a,b;
    	a = 100;
    	b = -200;
    	std::swap(a,b);
    	cout<<a<<endl<<b; //此时b=100;a=-200
    }
    
    展开全文
  • #include <stdio.h> void Swap(int *x,int *y){ int temp; temp=*x; *x=*y; *y=temp; } main(void){ int a[3],b[3],i;... printf("\n数组a:"); for(i=0;i<3;i++){ printf("%d",a[i
    #include <stdio.h> 
    
    void Swap(int *x,int *y){
    	int temp;
    	temp=*x;
    	*x=*y;
    	*y=temp;
    }
    
    main(void){
    	int a[3],b[3],i;
    	printf("\n请输入数组a:");
    	for(i=0;i<3;i++){
    		scanf("%d",&a[i]);
    	}
    	printf("\n数组a为:");
    	for(i=0;i<3;i++){
    		printf("%d",a[i]);
    	}
    	printf("\n请输入数组b:");
    	for(i=0;i<3;i++){
    		scanf("%d",&b[i]);
    	}
    	printf("\n数组b为:");
    	for(i=0;i<3;i++){
    		printf("%d",b[i]);
    	}
    	for(i=0;i<3;i++){
    		Swap(&a[i],&b[i]);
    	}
    	printf("\n交换后数组a为:");
    	for(i=0;i<3;i++){
    		printf("%d",a[i]);
    	}
    	printf("\n交换后数组b为:");
    	for(i=0;i<3;i++){
    		printf("%d",b[i]);
    	}
    }
    
    
    展开全文
  • 指针交换两个变量的值(10分) 题目内容: 用指针交换两个变量的值 主函数参考: int main( ) { int a,b; scanf("%d%d",&a,&b); swap(&a,&b); printf("%d %d",a,b); return ...
  • (1)错误示例1 a,b的值不会改变,因为在子函数Swap中a和b的数值进行了交换,但是子函数数据中的改变不会影响到父函数 void Swap_error1(int a,int b) ...尽管使用了指针,a,b的值依旧不会改变。因为仅仅只是交换
  • C语言--指针交换两个变量

    千次阅读 2018-08-30 17:06:15
    指针是一特殊的变量,它里面存储的数值被解释成为内存里的一地址。 例如: int *p; //* 表示指针说明符:说明变量p是一个指针,只会在定义变量的时候出现 int a; p = &amp;a; // &amp;符号表示取a...
  • C语言 用指针实现两个交换

    千次阅读 2019-10-19 12:38:57
    #include<stdio.h> void main() { int *p1 , *p2 , p; //这里的 “ ” 代表定义 int a,b; scanf("%d %d" , &a,&b); p1=&a; //a的地址给了p1 ... //进行地址的交换 p1=p2...
  • C语言指针变量实现 交换 不使用指针变量: 正确写法 t=a;//正确的 a=b; b=t; 错误写法 #include<stdio.h> int main() { void swap(int x,int y); int *point_1,*point_2; int a,b; scanf("%d%d",&a,...
  • 1 #include <iostream> 2 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 4 using namespace std; ... 5 int main(int argc, char**...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 指针:内容0的指针(因为空指针里面不放置内容);或者是地址0的指针。 NULL实际上就是整数0。NULL可以用来代表空指针。 int * p2 = 0; 表示p2指向地址0。  不能写*pn = 。。int n=* pn;这种表达是...
  • 交换两个变量的值(指针用法)

    千次阅读 2019-03-31 21:06:49
    1)若不是地址,形参是两个变量,那么传进去的是两个单纯的数值,数值在函数内部做了交换,即函数内的两个局部变量(形参)进行了数值交换交换后的效果并没有影响到函数外的实参(调用该函数相当于只是给函数提供...
  • 指针交换两个变量的值

    万次阅读 多人点赞 2015-12-08 16:37:44
    方案1:不使用指针 如果不使用指针交换两个变量的值,坦白来说是个不可能完成的任务,你可能会写成这样的:  #include "stdio.h"void swap(int a,int b) { int temp; temp = a; a = b; b = a; }int main() { ...
  • #include <stdio.h> void swap(int *px, int *py){ ... puts("请输入两个整数:"); printf("整数A:"); scanf("%d", &num1); printf("整数B:"); scanf("%d", &num2); swap(&nu
  • C语言用指针实现两个数组值互换

    万次阅读 2017-09-08 15:07:12
    C语言用指针实现两数组的值互换#include <stdio.h> #define N 10 void ReadData(int a[], int n); void PrintData(int a[], int n); void Swap(int *x, int *y); int main() { int a[N], b[N], i,n,k; ...
  • 使用指针交换两个

    千次阅读 2020-05-04 20:21:19
    《程序设计基础实训指导教程-c语言》 ...【实训内容1】使用指针交换两个数 #include <stdio.h> int main() { int a,b,*p; int t; p=&t; scanf("%d %d",&a,&b); *p=a; a=...
  • 下面程序段的功能是交换两个字符数组的内容(每个字符串字符数均不超过100).(8分) void StrSwap(char *pa,char *pb) {   char *temp;  temp = pa;  pa = pb;  pb = temp; }   C语言中实参形参变量之间...
  • 关于用指针交换两个

    千次阅读 2018-12-14 12:08:30
    关于用指针交换两个数 西邮Linux 兴趣小组又到了纳新季,作为一个老学长,面试学弟学妹们的时候,必然要然他们感受到小组的关怀(受尽折磨),这一届孩子还是挺强的,但是一到指针上就栽了坑,在加上我们小组的陈年老...
  • 利用指针完成两个数字的交换(c语言)

    万次阅读 多人点赞 2019-03-30 11:31:43
    初学指针:子函数如何才能影响父函数
  • // 编写一个函数,使用指针形参交换两个整数的值。 void exchange(int *p, int *q) { // 定义一个交换变量 int temp; // 交换 temp = *p; *p = *q; *q = temp; } int main() { int i = 42,...
  • 使用外部函数交换两个变量的值,一个再简单不过的事情,但是在C/C++中,正确实现该功能反应了你对指针和引用等重要知识的掌握程度。本文列举了几种常见的写法,其中前三种是错误的,后两种是正确的。第四种使用的是...
  • 定义一个函数,实现两个参数交换。在主函数中输入3个实数,按升序排序后输出。 1)要求用变量指针作为函数参数,在被调函数中实现变量值的交换。 2)要求参数为引用类型,在被调函数中实现变量值的交换。 #...
  • 【实训内容6】用指针和函数的方法完成两个数的交换 传递规则: 主函数 | 子函数 ----------------------- (1)普通变量-->普通变量 ----------------------- (2)普通变量-->指针变量 -------------------...
  • 指针变量作为函数参数

    千次阅读 2018-10-18 23:18:52
    例子:编写函数实现两个变量的值进行传递。 函数1: void Swap1(int a,int b) { int tmp=a; a=b; b=tmp; } int main() { int a=10; int b=20; Swap(a,b); printf(&amp;quot;%d,%d\n&...
  • #include<cstdio> //用指针写swap()函数 ...//用指针指针的引用写swap()函数 void swap_2(int* &p1,int* &p2){ int* temp = p1; p1 = p2; p2 = temp; } int main(){ int a = 2020,b=2021; i
  • 用函数实现两个数的交换指针

    千次阅读 2017-10-11 21:29:24
    #define _CRT_SECURE_NO_WARNINGS #include  #include  void swap(int *pa, int *pb) { int tmp = *pa; *pa= *pb; *pb = tmp;   ...printf("请输入要交换两个数\n"); scanf
  • 交换两个数的值
  • C++ 通过指针正确的交换两数值

    千次阅读 2016-08-25 19:36:04
     假设主函数里定义两个变量 int = 5; int b = 7;  1、 那么调用exchange2函数的时候,变量a和变量b的地址就会传给exchange2函数中  2、 在调用函数后,形参*x和*y内容就是变量a和b的地址 : x = &a, y = &b; ...
  • c语言中交换两个变量的值

    千次阅读 2020-02-02 18:37:16
    编写一个 数值交换函数,实现两个变量的值交换 运行结果如下: 发现swap函数中两个变量的值的确交换了,但是主函数里面两个数值并没有交换。 即形参x,y值变了,实参a,b并没有变化原因如下(最简单的理解: 形参x,y...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,231
精华内容 32,092
关键字:

参数为指针实现两个变量交换