zoukankan      html  css  js  c++  java
  • C语言 指针理解

    1、指针

      指针全称是指针变量,其实质是C语言的一种变量。这种变量比较特殊,通常他的值会被赋值为某个变量的地址值(p = &a),然后我们可以使用 *p 这样的方式去间接访问p所指向的那个变量。

    2、为什么需要指针?

           指针存在的目的就是间接访问。有了指针之后,我们访问变量a不必只通过a这个变量名来访问。而可以通过p = &a; *p = xxx;这样的方式来间接访问变量a

    3、指针的定义和初始化

      指针既然是一种变量,那么肯定可以定义,也可以初始化

    第一种:先定义再赋值

      int *p;     //定义指针变量p

      p = &a;  //给p赋值

    第二种:定义的同时  初始化

           int *p = &a;        //效果等同于上边的先定义再赋值                           如果前边没有int 只有 *p = &a;这样是错误的

    4、int *p;

          int* p;

          int * p;

    以上三种定义方式都对。

    5、指针定义的两种理解方法

    int *p;

    第一种:首先看到p,这个是变量名;其次,p前边有个*,说明这个变量是一个指针变量;最后, *p前边有一个int,说明这个指针变量p所指向的是一个int型数据。

    第二种:首先看到p,这个是变量名;其次看到p前边的int *,把int *作为一个整体来理解,int * 是一种类型(复合类型),该类型表示一种指向int型数据的指针。

    5、实例

    int main()

    {

      int a = 23;             

      int *p;                                //定义一个int型的指针变量p

      p = &a;                             //将变量a的地址赋给p;

      *p = 111;                          //*p 代表指针变量p所指向的那个变量,在这里也就是变量a; 也就是a =  111;

            printf("a = %d ",a);

           return 0;

    }

    运行结果是 a=111;

  • 相关阅读:
    Mybatis中Log4j日志的使用
    Mybatis结果集ResultMap映射
    Mybatis中的基本对象的生命周期和作用域
    IAR瑞萨单片机开发加入printf调试函数
    【转】C语言mem.h中的函数介绍
    【转】c语言位域操作—_结构体内冒号:的使用
    串口数据传输当中的共用体和结构体转换
    【转】printf格式串中的%f的输出格式和内容
    【转】缓冲区设计--环形队列(C++)
    【转】环形队列理论(C语言)
  • 原文地址:https://www.cnblogs.com/jiangtongxue/p/11077170.html
Copyright © 2011-2022 走看看