zoukankan      html  css  js  c++  java
  • 指针的含义——指针变量、指针的指针、指针使用的注意

    指针其实很容易理解的,其他并不是大家想象的那么神奇,那么难。

    一、指针的含义:指针其实就是一个变量,它所存放的不是数据,而是数据在内存中地址。当然指针也可以存放函数(方法)的地址,后面会讲到的。声明指针的关键符是*号,指向地址的关键符是&。

    二、指针变量:

    例如1:#include <stdio.h>

       int main

      { 

         int a =10;             //第一一个变量a,赋值为10

        int *p = &a;            //p就是一个指针变量,所指向的就是变量a的地址

        printf("%d "  ,  p);      //输出指针变量P所指向该地址的变量a的值

         }

    例如2通过指针修改变量的值:

    #include <stdio.h>

    void change(int *a);

    int main

      { 

         int a =10;             //第一一个变量a,赋值为10

       change(&a);           //p就是一个指针变量,所指向的就是变量a的地址

        printf("%d "  ,  a);      //输出指针变量P所指向该地址的变量a的值

         }

    void chage(int *a)

    {

      *a =20;          //通过指针修改a的值

    }

    三、指针的指针:通过上面介绍的指针含义跟指针变量,对于指针的指针字面上来理解大家应该能懂了吧,下面举个例子:

    int mait

    {

      int a = 20;             //第一一个变量a,赋值为10

      int *p = &a;            //p就是一个指针变量,所指向的就是变量a的地址

        int **pp = &p;           //pp就是一个指针的指针变量,所指向的就是变量指针变量p的地址(&p表示指针变量p的地址)

          printf("%d " , **pp)       //输出的值就是a的值

    }

    输出:20

    上面的例子这样写的话你们会更明白  *pp == p;        //指针变量*pp找到指针变量p的存储空间

                     *(*pp) = *p = a;    //指针变量*pp找到所指向地址的值(两者相同)

                     **pp = *p = a;    //指针变量*pp找到所指向地址的值(两者相同)

    四、指针使用的三大注意:

    ①:指针类型只能指向相同类型的数据

    错误演示1:

     #include <stdio.h>

    int main

    {

      int *p ;

      double d = 10.0 ;

      p = &d;

      printf("%d " , *p);    //不会报错,只会警告!

    }

    ②:指针变量只能存储地址

    错误演示2:

    #include <stdio.h>

    int main

    {

      int *p ;

       p = 200;       //p只能存储地址 , 除非200是一个地址

      printf("%d " , *p);

    }

    ③:指针变量未经过初始化,不要拿来间接访问其他存储空间

    错误演示3:

    #include <stdio.h>

    int main

    {

      int *p ;

      printf("%d " , *p);

    }

  • 相关阅读:
    springboot中多端口启动(这里也适用于https既443端口)
    Gson的fromJson()方法(从Json相关对象到Java实体或转换成List集合)
    [C++] STL源码中学到的 Traits 编程技法的应用
    【解决问题】UNIAPP、VUE 中DATA 数组更新后页面不同步动态渲染更新
    selenium操作chrome时的一些配置
    在react项目中使用fetch 和 JWT进行权限验证(转)
    滚动条的设置(样式包括宽度,颜色等)zhuan
    css3 box-shadow阴影(外阴影与外发光)图示讲解(zhuan)
    js 截断字符串 超过几个字加...
    create-react-app 打包部署
  • 原文地址:https://www.cnblogs.com/2015-adong/p/4912446.html
Copyright © 2011-2022 走看看