精华内容
下载资源
问答
  • 指针如何交换数值

    2020-12-06 11:34:02
    如何用指针交换数值 程序分析 借助第三个指针,将前两个指针的位置进行交换,等输出时即可交换了对应的数值 代码如下 #include <stdio.h> int main() { int *p1,*p2,*p,a,b; printf("please enter two ...

    问题

    如何用指针交换数值

    程序分析

    借助第三个指针,将前两个指针的位置进行交换,等输出时即可交换了对应的数值

    代码如下

    #include <stdio.h>
    int main()
    {
        int *p1,*p2,*p,a,b;
        printf("please enter two integer numbers:");
        scanf("%d%d",&a,&b);
        p1=&a;
        p2=&b;
        if(a<b)
        {
            p=p1;
            p1=p2;
            p2=p;
        }
        printf("a=%d,b=%d\n",a,b);
        printf("max=%d,min=%d\n",*p1,*p2);
        return 0;
    }
    
    

    样例示范

    1,2
    a=1,b=2
    max=2,min-1
    

    总结

       借助第三指针位置交换
    
    展开全文
  • 下面我们我们以两个数值交换为例尝试写出修改函数值的正确代码。 void Swap(int *a,int *b)//error { int *tmp; *tmp = *a; *a = *b; *b = *tmp; } int main() { int a=1; int b=2; Swap(&a,&b); ...

    如何用一个函数修改另一个函数的值

    首先要明确一点,一个函数若是想要修改另一个函数的值,必须向另一个函数中传指针并在该函数中解引用。

    下面我们我们以两个数值的交换为例尝试写出修改函数值的正确代码。

    void Swap(int *a,int *b)//error
    {
    	int *tmp;
    	*tmp = *a;
    	*a = *b;
    	*b = *tmp;
    }
    
    int main()
    {
    	int a=1;
    	int b=2;
    	Swap(&a,&b);   //传a,b的地址(因为Swap函数定义的是指针变量)
    	printf("a=%d,b=%d",a,b);
    	return 0;
    }
    

    将该函数编译将会出现程序崩溃现象,因为int *tmp是典型的野指针,用户是没有访问权限的,因此无法解引用。所以我们应直接定义一个int tmp作为Swap函数的交换中间值即可。

    void Swap(int *a,int *b)//right
    {
    	int tmp;
    	tmp = *a;
    	*a = *b;
    	*b = tmp;
    }
    
    int main()
    {
    	int a=1;
    	int b=2;
    	Swap(&a,&b);   //传a,b的地址(因为Swap函数定义的是指针变量)
    	printf("a=%d,b=%d",a,b);
    	return 0;
    }
    

    野指针:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针变量在定义时如果未初始化,其值是随机的,指针变量的值是别的变量的地址,意味着指针指向了一个地址是不确定的变量,此时去解引用就是去访问了一个不确定的地址,所以结果是不可知的。

    野指针可以定义,但不能访问和赋值。

    int *p=(int *)2000;
    

    也属于野指针

    展开全文
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
  • 3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行?  3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b;  3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32);  ...
  •  3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
  • 3.15 我要检查一个数是不是在另外两个数之间,为什么if(a )不行? 69 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 69 3.17 为什么下面的代码总是给出0?double degC, degF; degC= 5.0 / 9...
  • 3.15 我要检查一个数是不是在另外两个数之间,为什么if(a )不行? 69 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 69 3.17 为什么下面的代码总是给出0?double degC, degF; degC= 5.0 / 9...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.15 我要检查一个数是不是在另外两个数之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • 3.15 我要检查一个数是不是在另外两个数之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • 你必须知道的495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的一 个。可以下边这样的代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ...
  • 第二种思路根据数组的特点,出现次数超过一半的数,他出现的次数比其他数字出现的总和还要多,因此可以最开始保存两个数值:数组中的一个数字以及它出现的次数,然后遍历,如果下一个数字等于这个数字,那么次数加一...
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    在前种格式中,会将<来源>复制至<目的地>或将多<来源>文件复制至已存在的<目录>,同时设定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须的参数在使用短选项时也...
  • o 5.8 我看到了用指针调用函数的不同语法形式。到底怎么回事? o 5.9 我怎样把一 int 变量转换为 char * 型?我试了类型转换, 但是不行。 * 6. 空 (null) 指针 o 6.1 臭名昭著的空指针到底是什么? o 6.2 ...
  • 18.3.1 swap() 交换两个字符串的内容 389 18.3.2 将string型字符串转为char型字符串 390 18.3.3 char型字符串与函数 391 18.3.4 函数如何返回字符串 392 18.4 结构体 394 18.4.1 结构体的赋值 397 18.4.2 ...
  • 《数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    6.数据结构中评价算法的两个重要指标是(时间复杂度和空间复杂度) 【北京理工大学 2001 七、1(2分)】 7. 数据结构是研讨数据的_(1)物理结构_和_(2)逻辑结构 _,以及它们之间的相互关系,并对与这种结构定义...
  • 输出已交换后的两个值。 66 9.2输入两个整数,求它们相除的余数。带参的宏来实现,编程序。 67 9.3 67 9.4给年份year定义一个宏,以判断该年份是否为闰年。 68 9.5请分析以下一组宏所定义的输出格式: 68 9.6请...
  • 1.3.5 给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度 1.3.6 假如给你一个新产品,你将从哪些方面来保障它的质量? ...
  • php高级开发教程说明

    2008-11-27 11:39:22
    据,但后来你发现也需要它接收数值性的数据,通过工作区转换,可以使它能够接收数值性 数据。但后来你又感觉到这工作区仍旧不能满足需要,这时唯一能做的就是改变数据库接口, 这需要重构提取层并对所有主代码...
  • int类型,该类型占两个字节的内存空间,所以每个元素均占有两个 字节(图中每一格为一字节)。 二维数组元素的表示方法  二维数组的元素也称为双下标变量,其表示的形式为: 数组名[下标][下标] 其中下标应为整型...
  • C++提供了一C 连接交换指定符号extern“C”来解决这问题。 (4). switch()中不允许的数据类型是? 答:实型 4. 回答下面的问题(6分) (1).Void GetMemory(char **p, int num){ *p = (char *)malloc(num); } void ...
  • LeetCode ...我们的 slogon 是: 只有熟练掌握基础的数据结构与算法,才能对复杂问题迎刃有余。...这是我将我的所有公开的算法资料整理的一个电子书,全部题目...0004. 寻找两个正序数组的中位数 0023. 合并 K ...
  • 程序员面试宝典高清

    2012-03-16 16:28:17
    从这个大厦的某一层扔下围棋子就会碎,你手中的这两个玻璃围棋子,找出一个最优的策略,来得知那个临界层面。[中国著名通讯企业H公司面试题,2008年] 解析:设总共楼层为 h a(n)(如a(1) ,a(2)...)表示每一次抛...
  • windows 程序设计

    2011-07-24 21:16:30
    本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法。这些程序C语言编写并使用原始的Windows Application ...在分段内存模式下,内存地址由两个部分组成-一个16...
  • 对某交换类进行计费测试,字冠011对应1号路由、1号子路由,有4个中继群11,12,13,14(都属于1#模块),前后两个群分别构成自环。其中11,13群向为出中继,12,14群向为入中继,对这四个群分别进行计费设置,对出入中继都...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

如何用指针交换两个数值