|  | 
 
| 
一共两个代码 三个问题
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 
 复制代码#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct Teacher
{
        int age;
        int id;
        char name[20];
}TEAC;
TEAC* createTeacher(int num)
{
        TEAC* tmp = (TEAC*)malloc(sizeof(TEAC) * num);
        if (tmp == NULL)
        {
                return NULL;
        }
        return tmp;
}
void main()
{
        int num = 3;
        TEAC* pArr = NULL;  //问题1 :这里为啥要定义一个一级指针变量?用元素传递不行吗?
        pArr = createTeacher(num);
        system("pause");
}
 
 复制代码#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
//pArr指向buf[10]
void printArr(char(*pArr)[10], int num)//问题2 char(*pArr)[4] = buf,这句形参怎么理解 pArr指向buf[10]?
{                                                        问题3 char(*pArr)[5] 为啥[]中的数字 要和后面定义的数组长度相同,他们之间有什么联系吗?                                        
        int i;
        for ( i = 0; i < 4; i++)
        {
                printf("%s\n", pArr[i]);
        }
        printf("\n");
}
void sortArr(char(*pArr)[10], int num)
{
        int i;
        int j;
        char tmp[20];
        for (i = 0; i < num; i++)
        {
                for (j = i + 1; j < num; j++);
                {
                        if (strcmp(pArr[i], pArr[j]) < 0)
                        {
                                strcpy(tmp, pArr[i]);
                                strcpy(pArr[i], pArr[j]);
                                strcpy(pArr[j], tmp);
                        }
                }
        }
}
void main()
{
        int num = 4;
        char buf[4][10] = { "aaaaa","ccccc","bbbbb","11111" };
        printf("排序之前\n");
        printArr(buf, num);
        sortArr(buf, num);
        printf("排序之后\n");
        printArr(buf, num);
        system("pause");
}
 
 | 
 |