美文网首页十天学会C语言
第08天C语言(13):多级指针

第08天C语言(13):多级指针

作者: liyuhong | 来源:发表于2017-07-10 23:22 被阅读30次
    一、概念
    /*
     char c = 'a';
     char *cp;
     cp = &c;
     char **cpp;
     cpp = &cp;
     
     *cp == c
     *cpp == cp;
     **cpp == *(*cp) == *cp == c
     */
    
    二、代码
    #include <stdio.h>
    int main()
    {
        /*
        char charValue = 'l';
        char *p;
        p = &charValue;
    //    charValue = 'n';
        *p = 'n';
        printf("%c\n",*p);
         */
        
        /*
        char charValue = 'l';
        // 1.拷贝需要指向的变量的 数据类型 和名称
        // 2.在数据类型 和变量名称 之间加上一颗星
        // 3.修改变量名称
        char *charValueP;
        
        charValueP = &charValue;
    
        // 1.拷贝需要指向的变量的 数据类型 和名称
        // 2.在数据类型 和变量名称 之间加上一颗星
        // 3.修改变量名称
        char **charValuePP; // 不管有几颗* 只要是指针 就占用8个字节
        printf("size = %lu\n",sizeof(charValuePP));
        charValuePP = &charValueP;
    
    //    charValue = 'j';
        // *charValueP == charValue
    //    *charValueP = 'j';
    //    *charValuePP == charValuePP
    //    printf("%c\n",*charValueP);
        
        // &charValue == charValueP
        printf("&charValue = %p\n",&charValue);
        printf("charValueP = %p\n",charValueP);
        
        // &charValueP == charValuePP
        printf("&charValueP = %p\n",&charValueP);
        printf("charValuePP = %p\n",charValuePP);
        
        // *charValuePP == charValueP
        // *pp = p
        // **charValuePP = *(*charValueP) = *charValueP = l
        **charValuePP = 'n';
        printf("%c\n",charValue);
        printf("%c\n",**charValuePP);
         */
        
        
        char c = 'a';
        char *cp;
        cp = &c;
        char **cpp;
        cpp = &cp;
        char ***cppp;
        cppp = &cpp;
        printf("cppp = %c\n",***cppp);
    
        /*
         *cp == c
         *cpp == cp;
         **cpp == *(*cp) == *cp == c
         
         多级指针的操作,最简单的方式,就是通过几颗星来存储,就通过几个星来访问
         
         还有一种方式 就是画图,看图片中有几个箭头,就用几颗星来访问
         */
        
        printf("c = %c\n",c);
        printf("*cp = %c\n",*cp);
        
        printf("&c = %p\n",&c);
        printf("cp = %p\n",cp);
        printf("*cpp = %p\n",*cpp);
        
        printf("**cpp = %c\n",**cpp);
    
        
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:第08天C语言(13):多级指针

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