A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include<stdio.h>
int main (){

    int a=8;

    int *p=&a;                          //p取a的地址或着说p指向了a的地址

    int **b=&p;                         //*b取p的地址或着说b指向了p的地址

    if (p==&a){
        printf("%p\n",&a);              //指针变量p保存的地指针是a的地址

        printf("%p\n",p);               //指针变量p保存的地指针是a的地址
    }

    if (*p==a){
        printf("%d\n",a);               //*p变量指向的地址对应内存空间是a值.

        printf("%d\n",*p);              //*p变量指向的地址对应内存空间是a值.

    }

    if (b==&p){                         //b中保存的地址与p的地址是对应的.
        printf("%p\n",&p);

        printf("%p\n",b);               //b中保存的地址与p的地址是对应的.
    }

    if (*b==p){
        printf("%p\n",*b);              //*b指向的值,就是指针变量p存储的值

        printf("%p\n",p);               //*b指向的值,就是指针变量p存储的值
    }

    if (**b==a){
        printf("%d\n",**b);             //**b指向的值,就是变量a的值,*b指向的值,就是指针变量p存储的值,*p变量指向的地址对应内存空间是a值

        printf("%d\n",a);}              //**b指向的值,就是变量a的值,*b指向的值,就是指针变量p存储的值,*p变量指向的地址对

        if (&**b==&a) {
        printf("%p\n",&**b);            //取&**b的地址实际上是取&a的地址

        printf("%p\n",&a);}

    if (*b==&a){

        printf("%p\n",*b);

        printf("%p\n",&a);
    }




    return 0;
}

9 个回复

倒序浏览
看到二级指针就头发晕。。。
回复 使用道具 举报
没错 写的很到位 学习了
回复 使用道具 举报
指针是c里边最绕的,多看看
回复 使用道具 举报
指针是基础班最绕的,多看看
回复 使用道具 举报
李雄峰 来自手机 中级黑马 2015-7-2 19:52:51
地板
指针太灵活了,但是用的多了,多敲代码也就记住了
回复 使用道具 举报
1115302782 来自手机 中级黑马 2015-7-2 20:18:13
7#
总结的很好!
回复 使用道具 举报
不错 学习了  顶顶顶顶顶
回复 使用道具 举报
二级指针..我也痛苦中
回复 使用道具 举报
二级指针 是这样的:“@#¥¥……&##@……##*¥(&¥@%¥#”
学习中……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马