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);

    }

  • 相关阅读:
    TCP/IP详解V2(六)之TCP协议
    TCP/IP详解V2(四)之TCP协议
    TCP/IP详解V2(三)之TCP协议
    epoll源码剖析
    UDT源码剖析(二)之启动与结束
    TCP/IP详解V2(二)之UDP协议
    TCP/IP详解V2(一)之协议控制块
    UDT源码剖析(一)之总览
    SPI通信协议(SPI总线)学习
    第12章Cortex-M4-SPI-Bus
  • 原文地址:https://www.cnblogs.com/2015-adong/p/4912446.html
Copyright © 2011-2022 走看看