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下activemq安装
    java 线程方法join
    创建线程池
    游标储存过程
    返回结果集的储存过程
    linux 安装 reids 出错解决问题
    IDEAL 集成 jFINAL 问题
    oracle 游标
    oracle procedures
    Linux下安装Tomcat服务器
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11780117.html
Copyright © 2011-2022 走看看