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

     一.二级指针的输入模型

    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    
    #pragma warning(disable:4996)
    
    
    int printArray(char **pArray, int num)
    {
        if (pArray == NULL)
        {
            return -1;
        }
        int i = 0;
        for (i = 0; i < num;i++)
        {
            printf("myArray[%d] = %s
    ", i, pArray[i]);
        }
        return 0;
    }
    
    
    void main() {
    
    
        int i = 0, j = 0;
        char *temp = NULL;
        char * myArray[] = {"aaaaa","bbbbb","ccccc","1111111111"};
    
        printf("打印前......
    ");
    
        /*for (i = 0; i < 4; i++)
        {
            printf("myArray[%d] = %s
    ",i,myArray[i]);
        }*/
        
        printArray(myArray,4);
    
    
        for (i = 0; i < 4; i++)
        {
            for (j = i + 1; j < 4; j++)
            {
                if (strcmp(myArray[i], myArray[j]) > 0)
                {
                    temp = myArray[i];
                    myArray[i] = myArray[j];
                    myArray[j] = temp;
                }
            }
        }
    
    
        printf("打印后......
    ");
    
        /*for (i = 0; i < 4; i++)
        {
            printf("myArray[%d] = %s
    ", i, myArray[i]);
        }*/
        printArray(myArray, 4);
    
        
        system("pause");
    
    }

    打印结果:

    二.一级指针的技术推演

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #pragma warning(disable:4996)
    
    
    int getLen(int *p)
    {
        *p = 40;
    }
    
    void main()
    {
        int a = 0;
        int *p = NULL;
    
        // 直接修改a的值
        a = 10;
        printf("a:%d
    ",a);
    
        p = &a;
        *p = 20;
        printf("a:%d
    ",a);
    
        getLen(p);
        printf("a:%d
    ",a);
    
        system("pause");
    }

    输出:

    三.二级指针的技术推演

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #pragma warning(disable:4996)
    
    
    int getMem3(char **p)
    {
        *p = 200;
        *p = (char *)malloc(1000); // *p 指向的是一个新分配的内存块的地址
        return 0;
    }
    
    void main()
    {
        char *p = NULL;
        
        // 不断给指针变量赋值,相当于不断的修改指针的指向
        p = 0x1;
        p = 2;
        p = 3;
    
        getMem3(&p);
        printf("p:%d
    ",p);
    
        system("pause");
    }
  • 相关阅读:
    PHP学习当中遗漏的知识点
    sql必知必会(第四版) 学习笔记
    servlet 笔记
    sql server 快捷键
    233
    第 四 课 数据类型
    第三课 go语言基础语法
    第二课 go语言的结构
    第 1 课 Go 简介
    linux 学习 查看文件占用空间大小
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6835112.html
Copyright © 2011-2022 走看看