/*
    Name: C program assignment 2
    Copyright:
    Author: ShiroKa_X
    Date: 22/03/17 14:07
    Description:
*/

#include<stdio.h>
int swap(int *p, int *q)
{
    int t;
    t = *p;
    *p = *q;
    *q = t;
}
int main()
{
    int a, b;
    printf("please input two number of int :");
    scanf("%d %d",&a,&b);
    printf("%d %d\n", a, b);
    int *p, *q;
    p = &a;
    q = &b;
     swap(p, q);
    printf("%d %d\n", *p, *q);
}

Ⅱ、void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?

答:*q是整型变量,而*m式指针变量m所指向的变量。但m中并无确定的值(它的值是不可预见的),因此m所指向的单元也是不可预见的。

  所以,对*m赋值有可能给一个存储着重要数据的存储单元赋值,这样就会破坏系统的正常工作状况。应该将*p的值赋给一个整型变量,用

  整型变量m作为临时辅助变量实现*p和*q的交换。

Ⅲ、void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?

  函数swap内部只进行了p与q所指向的变量的地址进行了交换,并未对q、p指向的变量的值进行交换,所以输出的变量的值不变。

Ⅳ、构建comp函数,实现两个整数比较,比较大的值通过返回值返回给main。要求comp的参数和返回值都是指针类型数据。

 #include<stdio.h>

 int* comp(int *p, int *q)
 {
     return (*p > *q ? p : q);
 }
 int main()
 {
     int a, b,t;
     printf("please input two number:\n");
     scanf("%d %d", &a, &b);
     int *p, *q;
     p = &a;
     q = &b;
     t = *comp(p, q);
     printf("the max=%d\n", t);
 }

总结:

  1 对本章指针运用还不够熟练,许多知识点都是处于知道但不会运用的阶段。

  2 缺乏实践,打代码速度还不够快。

  3 对于,使用指针作为函数参数及返回指针型数据不够熟练,定义指针、运用指针的能力还有待提高。

C_program assignment 2的更多相关文章

  1. Atitit GRASP(General Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”

    Atitit GRASP(General Responsibility Assignment Software Patterns),中文名称为"通用职责分配软件模式" 1. GRA ...

  2. user initialization list vs constructor assignment

    [本文连接] http://www.cnblogs.com/hellogiser/p/user_initialization_list.html [分析] 初始化列表和构造函数内的赋值语句有何区别? ...

  3. Swift 提示:Initialization of variable was never used consider replacing with assignment to _ or removing it

    Swift 提示:Initialization of variable was never used consider replacing with assignment to _ or removi ...

  4. 代写assignment

    集英服务社,强于形,慧于心 集英服务社,是一家致力于优质学业设计的服务机构,为大家提供优质原创的学业解决方案.多年来,为海内外学子提供了多份原创优质的学业设计解决方案. 集英服务社,代写essay/a ...

  5. [Top-Down Approach] Assignment 1: WebServer [Python]

    Today I complete Socket Programming Assignment 1 Web Server Here is the code: #!/usr/bin/python2.7 # ...

  6. default constructor,copy constructor,copy assignment

     C++ Code  12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...

  7. Programming Assignment 5: Kd-Trees

    用2d-tree数据结构实现在2维矩形区域内的高效的range search 和 nearest neighbor search.2d-tree有许多的应用,在天体分类.计算机动画.神经网络加速.数据 ...

  8. Programming Assignment 4: 8 Puzzle

    The Problem. 求解8数码问题.用最少的移动次数能使8数码还原. Best-first search.使用A*算法来解决,我们定义一个Seach Node,它是当前搜索局面的一种状态,记录了 ...

  9. Programming Assignment 2: Randomized Queues and Deques

    实现一个泛型的双端队列和随机化队列,用数组和链表的方式实现基本数据结构,主要介绍了泛型和迭代器. Dequeue. 实现一个双端队列,它是栈和队列的升级版,支持首尾两端的插入和删除.Deque的API ...

随机推荐

  1. CentOS 离线安装 MYSQL+APACHE+PHP

    一.MYSQL安装 下载MYSQL安装包:MySQL-client-XXX.rpm   MySQL-server-XXX.rpm   MySQL-devel-XXX.rpm 如有冲突,要先删除原来的M ...

  2. java @Service 引入什么包

    maven中加入 <dependency> <groupId>org.springframework</groupId> <artifactId>spr ...

  3. react native 项目使用 expo 二维码扫描失败

    今天学习react native,需使用expo在移动端进行调试. npm start 运行项目后,使用expo扫描二维码,始终没有反应.于是决定采用这个方法: 连上手机打开usb调试后,按下‘a’, ...

  4. 承接Unity外包 U3D外包 Unity3D外包 小型Unity项目外包用Unity还是UE4

    转自mobilehub公众号(ID: mobilehub),作者:屠敏 VR浪潮席卷而来,相对于资本的狂热,现实中真正需要的是有实力的VR硬件研发团队和专业内容制作队伍.对于入门级的开发者而言,游戏引 ...

  5. Hadoop之HDFS概述

    一.HDFS产生背景及定义 1.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文 ...

  6. 将python中的一个float变量转成内存的4个字节值

    #coding=utf- from struct import pack,unpack byte=pack('f',1.5) print(byte) print([i for i in byte]) ...

  7. tensorbordX使用

    安装: pip install tensorflow-1.7.0 pip install tensorbord pip install tensorbordX 启动 tensorboard --log ...

  8. 美团2017年CodeM大赛-初赛B轮-黑白树

    https://ac.nowcoder.com/acm/problem/13249 链接:https://ac.nowcoder.com/acm/problem/13249来源:牛客网 题目描述 一棵 ...

  9. [解决方法] Java-Class.forName() 反射/映射子类 并转化为父类/接口

    实现通过子类名称字符串 动态获取生成子类. 用于模板方法, 抽象工厂模式等. 代码实现: public TheParentClass getSubClass(String subClassName) ...

  10. YouTuboba视频搬运~哔哩哔哩

    将YouTube上面的视频搬运到哔哩哔哩上面教程 1.首先选择YouTube上面一个视频,需要谷歌登录,然后保存这个视频播放链接. 2.在浏览器中输入这个网址:en.savefrom.net,点击En ...