黑马程序员技术交流社区

标题: 今天学的指针,不是很明白,请大家帮我看看有错的地主吗?? [打印本页]

作者: sxakljf    时间: 2015-6-29 23:41
标题: 今天学的指针,不是很明白,请大家帮我看看有错的地主吗??
#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;
}


作者: 丁铭检    时间: 2015-7-1 19:39
看到二级指针就头发晕。。。
作者: aludiba    时间: 2015-7-2 15:50
没错 写的很到位 学习了
作者: slj900926    时间: 2015-7-2 18:20
指针是c里边最绕的,多看看
作者: slj900926    时间: 2015-7-2 18:22
指针是基础班最绕的,多看看
作者: 李雄峰    时间: 2015-7-2 19:52
指针太灵活了,但是用的多了,多敲代码也就记住了
作者: 1115302782    时间: 2015-7-2 20:18
总结的很好!
作者: 18678927239    时间: 2015-7-2 21:01
不错 学习了  顶顶顶顶顶
作者: Thomas-王    时间: 2015-7-3 13:15
二级指针..我也痛苦中
作者: 弥修斯    时间: 2015-7-3 13:46
二级指针 是这样的:“@#¥¥……&##@……##*¥(&¥@%¥#”
学习中……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2