• C语言:指针的应用


    指针:

       常量:在程序运行过程中值不能发生改变

       变量:在程序运行过程中值可以发生改变

       计算机内存中最小的存储单位是字节,每个字节都有一个编号这个编号就是地址

       指针变量:存储地址的变量

      

       一般形式:

       <数据类型> *<指针变量名>

       NULL: 空指针

      

    指针和变量的关系:

       int a = 10, b = 20;

       int *p = &a;

       printf("a:%d *p:%d\n", a, *p);

       a = 30;

       printf("a:%d *p:%d\n", a, *p);

       *p = 40;

       printf("a:%d *p:%d\n", a, *p);

      

    多级指针:(定义时有多个*) 解引用

        二级指针:

         指针的指针(指向一级指针的指针变量)

         int a = 10, b = 20;

         int *p;

         p = &a;

         int **q = &p;

         printf("a: %d %d %d\n", a, *p, **q);

         //p = &b;

         *q = &b; // p = &b

         q == &p    *q == p      **q == *p == b

        

    指针与一维数组:

       在C语言中一维数组的数组名就是该数组在内存中的起始地址也是首元素的地址

       char a[10] = {"hello"};

       char *p = a;

       printf("a[3]: %d %d %d %d\n", a[3], *(p+3), p[3], *(a+3));

      

       *和&互为逆运算: 同时存在可以相互抵消

       *和[]等价     :  可以相互转换

       &和[]互为逆运算:同时存在可以相互抵消

      

    int a[4] = {1,2,3,4}, m;

    scanf("%d", &m);

    加入m==3

    a: 2,3,4,1

    冒泡排序:

         int a[N] = {.....}, t;

         for(int i = 0; i < N-1; i++){

            for(int j = 0; j < N-i-1; j++){

               if(a[j] > a[j+1]){

                 t = a[j];

                 a[j] = a[j+1];

                 a[j+1] = t;

               }

            }

         }

  • 相关阅读:
    曹操最出名的4首诗赏析
    【pytorch笔记】第四篇 Transforms使用
    手边酒店V2独立版小程序 1.0.21 免授权+小程序前端
    2022最新RTMP+HTTP直播地址汇总(亲测可用)
    java面试——集合HashMap源码理解问题
    带你吃透Servlet核心编程下篇(完整图文教程)
    FTP服务器:ExpanDrive Mac
    【MySQL】聊聊数据库高可用
    C# - XMLHelper :一个操作XML的简单类库
    Vue3语法糖setup(二)
  • 原文地址:https://blog.csdn.net/qq_63626307/article/details/126325739