zoukankan      html  css  js  c++  java
  • 结构体做函数参数

    结构体值栈空间内存模型

    {
        int i = 0;
        for (; i < num; i++)
        {
            printf("age : %d
    ",array[i].age);
        }
    }
    
    void sortTeacher(Teacher *array,int num)
    {
        int i,j;
        Teacher tmp;
        
        for (i = 0; i < num; i++)
        {
            for (j = i+1; j < num; j++)
            {
                if (array[i].age > array[j].age)
                {
                    tmp = array[j];
                    array[j] = array[i];
                    array[i] = tmp;
                }
            }
        }
    }
    
    int main()
    {
        int i = 0;
        Teacher Array[3];
        int num = sizeof(Array)/sizeof(Array[0]);
    
        for(i = 0; i < num; i++)
        {
            printf("
    please enter age:");
            scanf("%d",&(Array[i].age));
        }
    
        printTeacher(Array,num);//
    
        sortTeacher(Array,num);
    
        printf("after sort
    ");
        printTeacher(Array,num);
    
        return 0;
    }

    结构体堆空间内存模型

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    typedef struct Teacher
    {
        char name[64];
        int age;
        int id;
    }Teacher;
    
    void printTeacher(Teacher *array,int num)
    {
        int i = 0;
        for (; i < num; i++)
        {
            printf("age : %d
    ",array[i].age);
        }
    }
    
    void sortTeacher(Teacher *array,int num)
    {
        int i,j;
        Teacher tmp;
        
        for (i = 0; i < num; i++)
        {
            for (j = i+1; j < num; j++)
            {
                if (array[i].age > array[j].age)
                {
                    tmp = array[j];
                    array[j] = array[i];
                    array[i] = tmp;
                }
            }
        }
    }
    
    Teacher *createTeacher(int num)
    {
        Teacher *tmp = NULL;
        tmp = (Teacher *)malloc(num * sizeof(Teacher));
        if (NULL == tmp)
        {
            return NULL;
        }
    
        return tmp;
    }
    
    void FreeTeacher(Teacher *p)
    {
        if (p != NULL)
        {
            free(p);
        }
    }
    
    int main()
    {
        int i = 0;
        int num = 3;
        Teacher *pArray = NULL;
        pArray = createTeacher(num);
    
        for(i = 0; i < num; i++)
        {
            printf("
    please enter age:");
            scanf("%d",&(pArray[i].age));
        }
    
        printTeacher(pArray,num);
    
        sortTeacher(pArray,num);
    
        printf("after sort
    ");
        printTeacher(pArray,num);
    
        FreeTeacher(pArray);
        return 0;
    }
  • 相关阅读:
    Linux系统-命令行快捷键
    Golang理解-Context包
    Golang理解-垃圾回收机制
    Linux系统-Systemd资源控制
    Linux系统-"cannot access Input/output error"
    Linux系统-ntpdate时间同步报错
    Golang理解-数组和切片
    Golang理解-位运算
    Golang理解-指针
    Maven配置,使用IntelliJ IDEA和Maven创建Java Web项目
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11780117.html
Copyright © 2011-2022 走看看