• 逍遥自在学C语言 | 指针的基础用法


    前言

    在C语言中,指针是一项重要的概念,它允许我们直接访问和操作内存地址。

    可以说,指针是C语言一大优势。用得好,你写程序如同赵子龙百万军中取上将首级;用得不好,则各种问题层出不穷,有种双拳难敌四手的感觉。

    本文将介绍指针的基础知识,包括指针的定义、初始化、访问和运算。

    一、人物简介

    • 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。

    • 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。

    二、指针的基本概念

    指针是一种变量,它存储的是内存地址而不是实际的值。

    通过指针,我们可以直接访问和操作内存中存储的数据。下面是指针的基本概念:

    int* ptr;  // 声明一个指向整数的指针
    

    在上面的示例中,我们声明了一个名为ptr的指针变量,它可以指向整数类型的数据。

    指针变量的类型必须与其指向的数据类型相匹配。

    三、声明和初始化指针

    要声明指针变量,我们需要使用*符号来指示该变量是一个指针。下面是指针的声明和初始化示例:

    int* ptr;    // 声明一个指向整数的指针
    int num = 10;  // 声明一个整数变量
    
    ptr = #  // 将指针指向num变量的地址
    

    在上面的示例中,我们声明了一个指向整数的指针ptr,然后将其初始化为变量num的地址,使用&运算符可以获取变量的地址。

    四、访问指针和间接引用

    通过指针,我们可以访问和修改其指向的变量。使用指针访问变量的值称为间接引用或解引用操作。

    下面是访问指针和解引用的示例:

    int* ptr;
    int num = 10;
    
    ptr = #
    
    printf("变量num的值:%d\n", *ptr);  // 输出:变量num的值:10
    
    *ptr = 20;  // 修改变量num的值
    
    printf("变量num的新值:%d\n", num);  // 输出:变量num的新值:20
    

    在上面的示例中,我们使用*ptr来访问指针所指向的变量num的值,并可以对其进行修改。

    五、指针的运算

    指针支持一些特定的运算,使得我们能够在内存中进行定位和遍历。

    以下是指针的常见运算:

    • 指针的自增和自减运算:使用自增和自减运算符可以将指针移动到下一个或上一个内存位置。
    int* ptr;
    int nums[] = {1, 2, 3, 4, 5};
    
    ptr = nums;  // 指针指向数组的第一个元素
    
    printf("第一个元素的值:%d\n", *ptr);  // 输出:第一个元素的值:1
    
    ptr++;  // 指针自增,移动到下一个元素
    
    printf("第二个元素的值:%d\n", *ptr);  // 输出:第二个元素的值:2
    
    • 指针之间的相减运算:可以对两个指针进行相减运算,得到它们之间的距离(以元素个数为单位)。
    int* ptr1;
    int* ptr2;
    int nums[] = {1, 2, 3, 4, 5};
    
    ptr1 = nums;       // 指针1指向数组的第一个元素
    ptr2 = &nums[3];   // 指针2指向数组的第四个元素
    
    int distance = ptr2 - ptr1;
    
    printf("两个指针之间的距离:%d\n", distance);  // 输出:两个指针之间的距离:3
    

    通过以上示例,我们可以看到指针的自增、自减和相减运算的应用,它们在遍历数组和计算距离等场景中非常有用。

    六、示例代码

    下面是完整的示例代码,用于加深对指针的理解,巩固前面所学的知识:

    #include 
    
    int main() {
        int num = 10;
        int* ptr = #
    
        printf("变量num的值:%d\n", *ptr);
        *ptr = 20;
        printf("变量num的新值:%d\n", num);
    
        int nums[] = {1, 2, 3, 4, 5};
        int* p = nums;
        printf("第一个元素的值:%d\n", *p);
        p++;
        printf("第二个元素的值:%d\n", *p);
    
        int* p1 = nums;
        int* p2 = &nums[3];
        int dist = p2 - p1;
        printf("两个指针之间的距离:%d\n", dist);
    
        return 0;
    }
    

    小结

    通过这篇文章,我们学会了

    1、指针的基本概念

    2、指针的基本用法

    📢欢迎各位 👍点赞 ⭐收藏 📝评论,如有错误请留言指正,非常感谢!

  • 相关阅读:
    『Java安全』Struts2 2.0.8 OGNL注入漏洞S2-001复现与浅析
    yocto machine class解析之st-partitions-image
    三方对接「心得」与「体会」
    自古最血腥的叛乱安史之乱到底有多乱?
    深度学习(PyTorch)——DataLoader的使用方法
    iTOP-3568开发板Ubuntu下安装ADB工具
    Python相关性分析代码
    狮子鱼社区团购小程序V18.9全开源独立版+小程序前端 安装教程
    「Python入门」python环境搭建及VScode使用python运行方式
    Cocos creator实现《滑雪趣挑战》滑雪小游戏资源及代码
  • 原文地址:https://www.cnblogs.com/Wayne123/p/17485911.html