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

简介: 版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/45606681 该C实例是一个比较简单的实例,但是在该实例中,重点介绍了C语言中比较常用的也是容易出错的指针变量,其中包括指针变量的赋值,指针变量的运算等等。
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/45606681

该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;  //定义3int类型的变量
    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是一个指针变量,他指向一个指向整型数据的指针变量
     */
}

目录
相关文章
|
2月前
|
C语言
指向指针数据的指针变量
指向指针数据的指针变量
10 0
|
22天前
|
存储 搜索推荐 C语言
运用指针轻松实现多个数据排列
这段内容介绍了一种使用PLC编程进行数据排序的方法,特别是通过冒泡排序算法来实现。文中以一个包含5个数字(90, 21, 132, -58, 34)的序列为例,详细解释了排序过程,包括多轮比较和数据交换。在每一轮中,最大的数字会移动到右侧。通过嵌套的FOR循环结构实现程序逻辑,其中外层循环控制轮次,内层循环处理每轮的比较和交换。最终,程序能够将序列从小到大排序。
24 6
|
2月前
|
分布式计算 Hadoop Java
Flink CDC产品常见问题之tidb cdc 数据量大了就疯狂报空指针如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
5月前
指向结构体类型数据的指针
指向结构体类型数据的指针。
29 3
|
6月前
【指针的进阶(3)】回调函数和qsort排序各种类型的数据
【指针的进阶(3)】回调函数和qsort排序各种类型的数据
35 0
|
6月前
|
机器学习/深度学习 存储 人工智能
【网安AIGC专题11.8】论文15 ChatGPT在软件工程中的全面作用:程序语法(AST生成、表达式匹配) 静态行为、动态分析(数据依赖和污点分析、指针分析) 提示设计(角色提示、指令提示)
【网安AIGC专题11.8】论文15 ChatGPT在软件工程中的全面作用:程序语法(AST生成、表达式匹配) 静态行为、动态分析(数据依赖和污点分析、指针分析) 提示设计(角色提示、指令提示)
75 0
|
10月前
|
存储
学C的第二十三天【继续深度剖析数据在内存中的存储:3. 浮点型在内存中的存储(重点);练习:1. 有序序列判断;2. 获得月份天数(多组输入);3. 使用指针打印数组内容;4. 使用指针使字符串逆序】-2
(4). 取出内存中的 指数E(三种情况):E全为1 指数E 是通过 真实值+中间值 算出来的,如果E全是1,(32位系统)说明E的真实值是 128,指数是128说明这个值是非常大的。 这时,如果 有效数字M 全为0,表示 ±无穷大(正负取决于符号位s)
|
11月前
|
SQL 数据库
springboot+mybatis,mapper调用查询的数据为空,报空指针异常
springboot+mybatis,mapper调用查询的数据为空,报空指针异常
753 0