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

2019-03-02  本文已影响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();
}
上一篇下一篇

猜你喜欢

热点阅读