用swap函数交换两个整数
#include<stdio.h> //头文件
main() //主函数
{
void swap(int *p,int *q); //声明
int a,b; //定义两个整数
int *p1,*p2; // 定义两个地址
scanf("%d,%d",&a,&b); //输入两个整数
p1=&a; //p1指向a
p2=&b; // p2指向 b
swap(p1,p2); //交换p1和p2
printf("%d,%d\n",a,b); //输出a,b的值
}
void swap(int *p,int *q) //调用函数
{
int k; //定义一个整数
k=*p; // 将*p的值赋给k
*p=*q; //将*q的值赋给*p
*q=k; //将k的值赋给*q
}
1,2
2,1 --------------------------------
Process exited after 14.19 seconds with return value 0
请按任意键继续. . .
总结:swap函数用的不熟练,定义函数时总出错。
#include<stdio.h> void swap(int *p,int *q)
{
int *m;
*m=*p;
*p=*q;
*q=*m;
}
指针变量在使用的时候没有进行初始化,所以有可能指向是其他重要的数据。
#include<stdio.h> void swap(int *p,int *q)
{
int *m;
m=p;
p=q;
q=m;
}
在swap函数中只是对指针变量中的地址进行调换(&p和&q交换),而并没有影响到a,b的值。
#include<stdio.h>
int main()
{int p1,p2;//定义整型
int*p,*q,*c;//定义指针
p=&p1;//p指向i
q=&p2;//q指向j
int*swap(int*a,int*b);//定义函数指针 ,让函数返回指针类型数据
scanf("%d,%d",p,q);
c=swap(p,q);//将函数的返回值赋值给指针变量c
printf("%d",*c);
return ;
}
int*swap(int*a,int*b)
{if(*a<*b)
return b;//返回指针变量
else
return a;
}
1,2
2
--------------------------------
Process exited after 3.378 seconds with return value 0
请按任意键继续. . .
总结:指针运用是需要注意何时用&,注意将p指向i和q指向j。
用swap函数交换两个整数的更多相关文章
- PTA 面向对象程序设计 6-1 引用作函数形参交换两个整数
引用作函数形参交换两个整数 设计一个void类型的函数Swap,该函数有两个引用类型的参数,函数功能为实现两个整数交换的操作. 裁判测试程序样例: #include <iostream> ...
- 黑马程序员-- C语言交换两个整数变量值几种函数比较
总结了C语言中几种交换两个整数数值的函数,欢迎交流 #include <stdio.h> 使用多种交换变量值的函数比较 方法一:使用第三方临时变量 这种函数a,b只是值传递,实质上不能修交 ...
- c语言-交换两个整数
使用c来写一个函数来实现交换两个整数. 第一种 一般的方法,引用中间变量,方便快捷. void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = t ...
- 面试题:如何在不使用临时变量temp的情况下交换两个整数的值?
利用一个小技巧,一个整数a在异或另一个整数b两次以后所得的值还是整数a. 具体的过程我们可以自己找两个整数以二进制的形式自己在纸上画一下他们的异或过程.(异或的运算符号为"^") ...
- python中如何调用函数交换两个变量的值
python中如何调用函数交换两个变量的值 所有代码来在python3.7.1版本实现 以下实例通过用户输入两个变量,并相互交换: 方法一: def swap(a,b): # 创建临时变量,并交换 ...
- 有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a
题目:有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a,具体实现如下: #include<stdlib.h> #include ...
- 用异或运算交换两个整数实现swap函数功能
对于异或运算有这如下说明: 1^1=0 0^0=0 1^0=1 0^1=1 简单理解就是当两个书相同时结果为0,而两个数不同时异或的结果为1 可用于两个整数的交换,而不用去引入一个中间变量 #incl ...
- 自己写一个swap函数交换任意两个相同类型元素的值 对空指针的使用 字节大小的判断(二)了解原理
验证的代码: #include <stdio.h> int main(){ char c = 'z'; ) + (c << ) + () + 'a'; printf(" ...
- C++入门经典-例5.7-调用自定义函数交换两变量值,传入指针
1:代码如下: // 5.7.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...
随机推荐
- JavaScript两个变量交换值(不使用临时变量)
概要 本文主要描述,如何不使用中间值,将两个变量的值进行交换. 一.普通做法 var a = 1, b = 2, tmp; tmp = a; a = b; b = tmp; 普通的做法就是声明多一 ...
- HTML文档及标签介绍
HTML标签 HTML 标记标签通常被称为 HTML 标签 (HTML tag). HTML标签是由尖括号包含的关键词,比如<html> HTML标签通常是成对出现的,比如<body ...
- c#基础——for循环嵌套经典练习题(打★)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 作业题1 ...
- Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势
原创文章,同步首发自作者个人博客转载请务必在文章开头处注明出处. 摘要 本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitio ...
- maven lean install 的时候出错 Failed to clean project
问题解决1 : 这种情况是属于 本地有多个 java 线程,关掉其中不用的,或者 都关闭就可以了. 问题解决 2 : Caused by: org.springframework.beans.f ...
- 关于Http请求后返回json乱码的问题
其实很多时候我们在做http请求数据返回的时候经常会莫名发现会出现乱码,大部分时候我们都觉得是编码不对造成的. 一般情况下正常我们默认都是作个很简单的操作,直接使用UTF-8编码基本问题就搞定了 Ht ...
- ACM 阶乘数位数
描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)? 输入 首行输入n,表示有多少组测试数据(n<1 ...
- 复杂SQL代码实例
DECLARE @begin DATETIME,@end DATETIME,@shanghutype INT, @beginshanghuarea BIGINT ,@endshanghuarea bi ...
- linux codeblocks汉化
参考window汉化codeblocks,linux下有点麻烦,就是要找到codeblocks的文件安装在哪里.一般来说,linux下安装的软件大都在/usr/share/文件夹下,所以进入/usr/ ...
- c# 将匿名类或者集合转Json格式数据一些方法
要说写这个功能呢也是因为工作需要,白天呢上班写个Web页面需要ajax请求后台并将数据以Json格式传会前端,由于公司特殊性吧,不能连外网(很苦比).所以只有等到晚上回家上网边查边写! public ...