/*
    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. Linux系统 磁盘IO过高排查总结

    最近做的一个电商网站因为磁盘 I/O 过高导致访问速度奇慢,问题存在两个月有余未得到解决办法.此次排查原因的经验可以作下次问题的参考. 1.会看懂 top 系统命令出来的各项参数.此次是无意中发现 u ...

  2. qt 串口

    if(ui->connectSerialBtn->text() == tr("打开串口")) { //ui->showSerialInfo->setEnab ...

  3. heartFunction c语言

    #include <stdio.h> int main(int argc, char *argv[]) { float y,x,z,f; for(y = 1.5f;y > -1.5f ...

  4. (void) (&_min1 == &_min2);【转】

    本文转载自:https://blog.csdn.net/xiaofeng_yan/article/details/5248693 偶然在<./linux/include/linux/kernel ...

  5. C# Winform ComBox三种赋值方式

    https://www.cnblogs.com/ingstyle/p/4815303.html 第一种方法: DataTable dt = new DataTable(); dt.Columns.Ad ...

  6. 为 pip install 设置 socks5 代理

    参考 How to use pip with socks proxy? 为 pip install 设置 socks5 代理 设置方法: pip install pysocks pip install ...

  7. wireshark基础学习—第一部分wireshark的基础知识

    1.Wireshark主窗口 Wireshark的主窗口如下所示 2.每个面板的内容 Packet List(数据包列表): 最上面的面板用表格显示了当前不惑文件中的所有数据包,其中包括了数据包序号. ...

  8. Django中的FBV与CBV

    一. FBV FBV(function based views) 基于函数的视图, 即一个url对应一个视图函数. 1.1 FBV代码示例 urls.py from django.contrib im ...

  9. API测试:Chai & Mocha

    (一)Chai($npm install chai)https://www.chaijs.com/  安装到devDependencies中,线上不用,开发用 Chai is a BDD(行为驱动开发 ...

  10. React-native完整配置流程

    开头敲黑板!! 无论你是RN的新手还是老手,跟着流程走,RN项目搭建起来完全不是问题!   一.网址收集 expo配置网址:https://blog.expo.io/building-a-react- ...