C语言day08-13多级指针

pragma mark 多级指针

pragma mark 概念

pragma mark 代码

#include <stdio.h>
int main()
{
#warning 一级指针
    /*
    char charValue = 'l';
    char *p;
    p = &charValue;
    
//    charValue = 'y';
    *p = 'y';
    printf("%c\n",*p);
    */
    
#warning 二级指针
    /*
    char charValue = 'l';
    // 1.拷贝需要指向的变量的数据类型和变量名称
    // 2.在数据类型和变量名称之间加上一颗星
    // 3.修改变量名称
    char *charValueP;
    charValueP = &charValue;
    
    // 1.拷贝需要指向的变量的数据类型和变量名称
    // 2.在数据类型和变量名称之间加上一颗星
    // 3.修改变量名称
    char **charValuePP; // 不管有几颗星 只要是指针变量就占用8个字节
//    printf("size = %lu\n",sizeof(charValuePP));
    charValuePP = &charValueP;
    
    
    // 赋值1
//    charValue = 'j';
    
    // 赋值2
    // *pcharValuep == charVlaue
//    *charValueP = 'j';
    
    // 赋值3
    
    // &charVlaue == charVlaueP
    printf("&charValue = %p\n",&charValue);
    printf("charValueP = %p\n",charValueP);
    
    // &charValueP == charVlauePP
    printf("&charValueP = %p\n",&charValueP);
    printf("charValuePP = %p\n",charValuePP);

    // *charVlauePP == offc14 == charValueP
    // *pp = p
    
    // **charValuePP = *(charValuePP) == *charValueP == 0ffc14 == y
    
    **charValuePP = 'N';
//    printf("%c\n",charValue);
//    printf("%c\n",*charValueP);
    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;
     **cp == *(*cpp) == *cp == c
     多级指针的操作,最简单的方式,就是通过几颗星来存储,就通过几颗星来访问
     还有一种方式就是画图,看图片中有几个箭头,有几个鸡蛋就用几颗星来访问
     */
    
    printf("c = %c\n",c);
    printf("&c = %p\n",&c);
    
    printf("*cp = %c\n",*cp);
    printf("cp = %p\n",cp);

    printf("**cpp = %c\n",**cpp);
    printf("*cpp = %p\n",*cpp);
    
    
    return 0;
}


    原文作者:liyuhong165
    原文地址: https://www.jianshu.com/p/18bba9aba24c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞