美文网首页
c基础 - 指针变量 和 获取地址的值

c基础 - 指针变量 和 获取地址的值

作者: 世道无情 | 来源:发表于2019-03-02 05:51 被阅读0次

    前言

    变量:就是给内存地址取一个别名;

    1. 概述

    比如:
    在 java 中定义:int i = 100;用变量 i 接收 100这个数据;
    在 c 中定义:int i = 100 ; int* p = &i;

    在 c 语言中:
    
    指针变量:
        上边的 p 就是指针变量;
        相当于地址变量。 指针指向的就是变量的地址 或者 指针存放的就是变量的地址,
        也就是说 p 指向的就是 i的地址 或者 p存放的就是 i的地址;
    
    1.  用 &i 来获取 变量 i 的地址;
    2.  用 指针变量 int* p 来接收 &i 的返回值, 如 int* p = &i;
    3.  int*:表示int类型的指针,或者int 类型的地址,是用于接收int类型的指针;
    
    获取地址的值:
        用 * 来获取地址的值 ;
    1.  *(&i) 就是用来获取 i的地址的 值;
    2.  int* p = &i中:int*表示int类型的指针 或者 int类型的地址,用于接收int类型的指针;
    3.  p:这里的p已经是地址了,是指针的变量,可以直接通过 *p获取值;
    4.  *p:表示获取 地址 &i 的值;
    
    下边两句输出语句是一样的:
    printf("i的值为:%d\n" , *(&i));
    printf("i的值为:%d\n", *p);
    也就是说:根据int* p = &i可知:指针变量p就是 指向&i的地址 或者说 指针变量p存放的就是 &i的地址
    
    2. 代码如下

    #include<stdio.h>  // 导入头文件,头文件都是方法的声明。
    void main(){
        int i = 100;
        double d = 200;
    
        printf("i的值为:%d\n" , i); // 100
    
        // 通过 *获取地址的值
        printf("i的值为:%d\n" , *(&i)); // 100, 首先获取i的地址&i,然后获取该地址对应的值 *(&i)
    
        // 指针变量,相当于地址变量:指针指向的就是变量地址 或者 存放的就是变量的地址
    
        // int* :表示int类型的指针,或者int类型的地址,用于接收int类型的指针
        // p:是指针的变量
        int* p = &i;
        // 获取到i的地址后,再打印i的值:
        printf("i的值为:%d\n", *p); // 100, *p:表示对地址i去取值
    
        // double*:表示double类型的指针,或者double类型的地址,用于接收 double 类型的指针
        // double* pl = &d;
        getchar();
    }
    

    相关文章

      网友评论

          本文标题:c基础 - 指针变量 和 获取地址的值

          本文链接:https://www.haomeiwen.com/subject/gwboiftx.html