使用指针比较整型数据的大小

该C实例是一个比较简单的实例,但是在该实例中,重点介绍了C语言中比较常用的也是容易出错的指针变量,其中包括指针变量的赋值,指针变量的运算等等。该实例实现了通过使用指针变量来比较3个整形数据,使其从小到大排列,实现比较简单,下面附上我的代码:

#include <stdio.h>

/**
 * 通过指针比较三个整数的大小
 * @brief main
 * @return
 */

/**
 * 指针,即为变量的地址;指针变量,即数值为
 * 指向变量地址的变量
 * 指针变量的类型:
 * 对指针变量的类型说明包括3个内容
 *  1:指针类型说明,即定义变量为一个指针变量
 *  2:指针变量名
 *  3:变量值(指针)所指向的变量的数据类型
 * 其一般形式为:
 *  类型说明符 *变量名;
 *  其中,*表示这是一个指针变量,变量名即为定义的指针变量名,
 *  类型说明符表示本指针变量所指向的变量的数据类型
 *
 *  指针变量的赋值:
 *  C中提供了地址运算符"&"来表示变量的地址
 *  要把整型变量a的地址赋予p可以有下面两种方式:
 *  (1)指针变量初始化方法
 *      int a;
 *      int *p = &a;
 *  (2)赋值语句的方法
 *      int a;
 *      int *p
 *      p = &a;
 *
 *  指针变量的元算:
 *  1:指针运算法
 *      (1)取地址运算符&
 *      (2)取内容运算符*
 *  2:指针变量的元算
 *      (1)赋值运算
 *      (2)加减运算符
 */

int main(void)
{
    int x,y,z;  //定义3个int类型的变量
    int *xp = &x, /*定义指针变量xp,并赋值为x的地址,使其指向x*/
        *yp = &y, /*定义指针变量yp,并赋值为y的地址,使yp指向y*/
        *zp = &z; /*定义指针变量zp,并赋值为z的地址,是zp指向z*/

    int t;

    printf("Please input x,y,z:\n");
    scanf("%d%d%d",xp,yp,zp); /* 通过变量的指针,为变量输入值 */

    if(*xp > *yp){  /*通过指向变量的指针引用变量的值*/
        t = *xp;
        *xp = *yp;
        *yp = t;
    }

    if(*xp > *zp){
        t = *xp;
        *xp = *zp;
        *zp = t;
    }

    if(*yp > *zp){
        t = *yp;
        *yp = *zp;
        *zp = t;
    }

    printf("x = %d,y = %d,z = %d\n",x,y,z);
    return 0;

    /**
     * 与指针有关的类型:
     * int i; //定义整型变量i
     * int *p; //p为指向整型数据的指针变量
     * int a[n]; //定义数组a,他有n个元素
     * int *p[n]; //定义指针数组p,他有n个指向整型数据的指针元素组成
     * int (*p)[n]; //p为指向n个元素的一维数组的指针变量
     * int f(); //f为返回整型函数值的函数
     * int *p(); //p为返回一个指针的函数,该指针指向整数型数据
     * int (*p)(); //p为指向函数的指针,该函数返回一个整数值
     * int **p; //p是一个指针变量,他指向一个指向整型数据的指针变量
     */
}

时间: 2024-08-11 11:30:08

使用指针比较整型数据的大小的相关文章

复习一下整型数组,字符数组,整型指针数组,字符指针数组,整型数组指针,字符数组指针

20:52:01 2019-12-31 整型数组 int a[10];字符数组 char b[10]; _______________________整型指针数组 int *p[10]; |__|__|__|__|__|__|__|__|__| 每个格子里存的是一个指针,每个指针都是int类型的,会指向一个int的值. 1 for(int i=0; i<10; i++) 2 p[i] = &a[i]; //把a中的每个元素的地址都放在了指针数组p里. 3 4 for(int j=0; j&l

访问一个绝对地址把一个整型数强制转换 (typecast)为一个指针是合法的

在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66.编译器是一个纯粹的ANSI编译器.写代码去完成这一任务. 解析:这一问题测试你是否知道为了访问一个绝对地址把一个整型数强制转换(typecast)为一个指针是合法的.这一问题的实现方式随着个人风格不同而不同.典型的代码如下: 一个较晦涩的方法是: 建议你在面试时使用第一种方案.答案:

华为机试—整型数组中出现次数最多的元素

取出整型数组中出现次数最多的元素,并按照升序排列返回. 要求实现方法: public static int[] calcTimes(int[] num, int len); [输入] num:整型数组: len :输入的整数个数 [返回] 按照升序排列返回整型数组中出现次数最多的元素 [注意]只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 输入:num = {1,1,3,4,4,4,9,9,9,10} len = 10 返回:{4,9} #include <iostream>

设计一个函数,找出整型数组元素的最大值

/* 设计一个函数,找出整型数组元素的最大值 */ #include <stdio.h> int maxOfArray(int array[], int length) { // 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节 //int size = sizeof(array); //printf("array=%d\n", size); //sizeof(array); // 1.定义一个变量存储最大值(默认就是首元素) i

leetcode——String to Integer (atoi) 字符串转换为整型数(AC)

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

Android 发送全4位的int整型数据到服务器困惑

在App开发中常使用json与服务器Socket请求和解析服务器返回的数据. 为了确保在网络传输过程中没有丢失数据,一般会在发送请求数据前先发送把数据的长度发送到服务器.但数据的长度是需要发送全4位整型数据到服务器. 举个例子:使用手机号码和验证码登录 发送请求body为:{"cmd":"login","username":"ceshi","code":"123456"} 则数据的长度为

2015华为机试—— 整型数排序

要求:请实现对一整型数序列的排序操作. 需求: 1.对输入的整型数序列A,完成升序排列,将结果序列从B中输出.以整数值大小为关键字排序,即小数在前,大数在后. 2.当序列中存在多个同样大小的数时,输出序列中仅保留一个. 举例: 输入序列A:76,92,34,34,59,16,59,45 符合要求的输出序列B:16,34,45,59,76,92 约束: 1.输入的序列至少含有一个整型数,否则应该返回null: 2.输入序列中的整数值使用int类型: 接口说明 /******************

MySQL中整型数据的差别

bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数,一般bigint(20),这个宽度和bigint的取值大小无关,只是用于显示.因为整型的显示宽度,对数值大小无影响,只是当设置了zerofill的时候,在显示的时候补0而已.int 从 -2^31 (-2,147,483,

实验12:Problem H: 整型数组运算符重载

Home Web Board ProblemSet Standing Status Statistics Problem H: 整型数组运算符重载 Problem H: 整型数组运算符重载 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 643  Solved: 401[Submit][Status][Web Board] Description 定义Array类: 1.拥有数据成员int length和int *mems,分别是数组中元素的个数和元