zoukankan      html  css  js  c++  java
  • 二级指针

    目标:分配一段内存,内存用于存储指针。

    代码:

    #include <stdio.h>
    #include <stdlib.h>
    
    void test(char **p, char *str, char *str2)
    {
            printf("p:%p
    ", p);  /* p指向malloc分配的内存起始地址 x */
            printf("&p:%p
    ", &p);  /* &p为入参p自己本身的地址 x2 */
            printf("*p:%p
    ", *p);  /* *p此时为NULL */
            *p = str;  
            printf("*p:%p
    ", *p);  /* *p此时为str的地址 */
            p++;  /* 向后偏移一个指针类型大小到 x + 4 */
            printf("p:%p
    ", p);
            printf("&p:%p
    ", &p);
            *p = str2;
            printf("*p+1:%p
    ", *p); /* *p此时为str2的地址 */
    
    }
    
    int main()
    {    char *str = "abc";
            char *str2 = "abcdef";
            printf("str:%p
    ", str);
            printf("str2:%p
    ", str2);
            char **p = malloc(8*sizeof(char *));
            printf("p:%p
    ", p); /* p指向malloc分配的内存起始地址 x */
            printf("&p:%p
    ", &p); /* &p为指针变量p自己本身的地址 x1 */
            printf("*p:%p
    ", *p); /* *p此时为NULL */
            test(p, str, str2);
            printf("p:%p
    ", p);
            printf("&p:%p
    ", &p); 
            printf("*p:%p
    ", *p);  /* 此时为str的地址 */
            printf("p:%p
    ", *(p+1));  /* 此时为str2的地址 */
         printf("p:%p ", p[1]);  /* 此时为str2的地址,同*(p+1) */
     
  • 相关阅读:
    spring 常用注解
    自定义Repository
    Python生成连续数字的多种方式
    HTML&CSS学习笔记
    ZigBee学习笔记
    Win10系统采用虚拟机安装Ubuntu18.04进行NS3开发环境配置
    Git速查笔记
    历史向网址收藏
    图解设计模式转载
    Crush Course 统计学笔记
  • 原文地址:https://www.cnblogs.com/xf-linux-arm-java-android/p/3913474.html
Copyright © 2011-2022 走看看