唐山网站建设冀icp备,在哪做网站建设,自己在哪里做网站,软件技术岗位有哪些1 指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址#xff0c;例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。根据出现的位置不同#xff0c;操作符 * 既可以用来声明一个指针变… 1 指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。根据出现的位置不同操作符 * 既可以用来声明一个指针变量也可以用作指针的取值。当用在声明一个变量时*表示这里声明了一个指针。其它情况用到*表示指针的取值。  链表由一系列不必在内存中相连的结构组成。每一个结构均含有表元素和指向包含该元素后继元的结构指针。我们称之为next指针。最后一个单元的next指针指向NULL该值由C定义并且不能与其它指针混淆。ANSI C规定NULL为零。 指针  指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。我们在使用c语言进行编写程序的时候就一定会使用上指针指针的操作是编写程序的一个点。如何更好的使用指针将是我们进行更好的书写程序的关键。我认为弄清楚下面几个要点可以更好的理解指针1指针是一个地址指向的是个类型2指针指向的是地址地址指向的是内容3指针的指针是面对于指针的变量  链表 链表我的理解要包含以下特征1.由n个节点离散分配2.每个节点通过指针连接3每一个节点由一个前驱节点和一个后驱节点4.首节点没有前驱节点尾节点没有后驱节点  满足上面的4条我们就称为链表链表既然由很多个节点那节点又由什么组成节点由两个部分组成一是数据域用来存放有效数据二是指针域用来指向下一个节点下面用C语言来构建链表数据结构首先应该构造出节点然后再把所有的节点连起来就构成了链表例如#includestdio.hint main(){   int*ptr;   // 声明一个int指针   int val 1;  // 声明一个int值   ptr val;  // 为指针分配一个int值的引用   int deref *ptr;  // 对指针进行取值打印存储在指针地址中的内容  printf(deref地址%ld,值%d\n,ptr, deref);   第2行我们通过*操作符声明了一个int指针。接着我们声明了一个int变量并赋值为1。然后我们用int变量的地址初始化我们的int指针。接下来对int指针取值用变量的内存地址初始化int指针。最终我们打印输出变量值内容为1。   第6行的val是一个引用。在val变量声明并初始化内存之后通过在变量名之前使用地址操作符我们可以直接引用变量的内存地址。   第8行我们再一次使用*操作符来对该指针取值可直接获得指针指向的内存地址中的数据。由于指针声明的类型是int所以取到的值是指针指向的内存地址存储的int值。   这里可以把指针、引用和值的关系类比为信封、邮箱地址和房子。一个指针就好像是一个信封我们可以在上面填写邮寄地址。一个引用地址就像是一个邮件地址它是实际的地址。取值就像是地址对应的房子。我们可以把信封上的地址擦掉写上另外一个我们想要的地址但这个行为对房子没有任何影响。2 #includestdio.h#includestdlib.h#includestring.h#includeconio.h#define PAGE 3#define MAX 1000#define N 5int k0;  /*结构体类型*/typedef struct  {   int num;/*学号*/    char name[20];/*姓名*/char sex[5];/*性别*/int age;/*年龄*/char studentclass[20];/*班级*/int score;/*成绩*/}STUDENTS; int read_file(STUDENTS stu[]){FILE *fp;    int i0;if((fpfopen(stu.txt,rt))NULL){printf(\n\n*****库存文件不存在请创); return 0;}while(feof(fp)!1)    {fread(stu[i],sizeof(STUDENTS),1,fp);if(stu[i].num0)break;elsei;}fclose(fp);return i;}void save_file(STUDENTS stu[],int sum){FILE*fp; int i; if((fpfopen(stu.txt,wb))NULL) {printf(写文件错误!\n);  return; }   for(i0;isum;i)   if(fwrite(stu[i],sizeof(STUDENTS),1,fp)!1)   printf(写文件错误!\n);   fclose(fp);}  /*创建学生信息*/int input(STUDENTS stu[]){  int i,x;   for(i0;i1000;i)   {    system(cls);      printf(\n\n                 录入学生信息  (最多%d个)\n,MAX);    printf(               ----------------------------\n);           printf(\n                     第%d个学生,k1);    printf(\n 请输入学生的学号:);        scanf(%d,stu[k].num);        printf(\n 请输入学生的姓名:);        scanf(%s,stu[k].name);  printf(\n 请输入学生的性别:);        scanf(%s,stu[k].sex);        printf(\n 请输入学生的年龄:);           scanf(%d,stu[k].age);          printf(\n 请输入学生的班级:);        scanf(%s,stu[k].studentclass);                printf(\n 请输入学生的成绩:);        scanf(%d,stu[k].score);        printf(\n 请按1键返回菜单或按0键继续创建);scanf(%d,x);if(x)  break;   }             return k;}  /*删除学生信息*/void deletel(STUDENTS stu[])  { system(cls);   char Stuname2[20];   int i,j;   printf(请输入学生姓名);   scanf(%s,Stuname2);   printf(\n);   for(i0;ik;i)   if(strcmp(stu[i].name,Stuname2)0)        for(j0;j20;j)       stu[i].name[j]stu[i1].name[j];   k--;     printf(删除成功\n);   printf(按任意键加回车返回主菜单!);   scanf(%d,i);   getchar();} /*打印学生信息*/                                                                                                                                                                                                                                                        void output(STUDENTS stu[]){  system(cls);   int i;   for(i0;ik;i)       printf(学号%d,姓名%s,性别%s,年龄%d,班级%s,成绩: %d\n,stu[i].num,stu[i].name,  stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);   printf(按任意键加回车返回主菜单!);   scanf(%d,i);   getchar();} /*查询学生信息*/void inquire(STUDENTS stu[])  { int i;    int num;    system(cls);    printf(     \n\n请输入您要查找的学生的学号);    scanf(%d,num);    for(i0;ik;i)      if(numstu[i].num)         printf(\n\n\n学号%d,姓名%s,性别%s,年龄%d,班级%s,成绩: %d\n,stu[i].num,stu[i].name, stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);    printf(按任意键加回车返回主菜单!);scanf(%d,i);    getchar();  }  /*修改学生信息*/void change(STUDENTS stu[])  {  int num,i,choice;     system(cls); printf(\n\n\n      请输入您要修改的学生的学号);     scanf(%d,num);     for(i0;ik;i)     { if(numstu[i].num)         printf(\n学号%d,姓名%s,性别%s,年龄%d,班级%s,成绩: %d\n,stu[i].num,stu[i].name, stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);      printf(\n\n\n     ********请输入您想要修改的数据********\n\n);     printf(                1. 学号\n\n);     printf(                2. 姓名\n\n); printf(                3. 性别\n\n);     printf(                4. 年龄\n\n);     printf(                5. 班级\n\n);     printf(                6. 成绩\n\n);     printf(                 请选择1-6:);  scanf(%d,choice);  switch(choice)  {case 1:{       printf(\n   请输入你改的新学号);           scanf(%d,stu[i].num);   break;   }   case 2:{       printf(\n   请输入你改的新姓名);           scanf(%s,stu[i].name);   break;  }   case 3:{       printf(\n   请输入你改的新性别);           scanf(%s,stu[i].sex);   break;  }   case 4:{       printf(\n   请输入你改的新年龄);           scanf(%d,stu[i].age);   break;  }   case 5:{       printf(\n   请输入你改的新班级);           scanf(%s,stu[i].studentclass);   break;  }   case 6:{       printf(\n   请输入你改的新成绩);           scanf(%d,stu[i].score);   break;  }  }    printf(学号%d,姓名%s,性别%s,年龄%d,班级%s,成绩: %d\n,stu[i].num,stu[i].name, stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);       printf(按任意键加回车返回主菜单!);   scanf(%d,i);   break; }}  /*学生成绩信息排名*/void sort(STUDENTS stu[])  {  int i,j,n1,x;     system(cls);     int t;      for(i0;ik-1;i)for(ji1;jk;j)if(stu[i].scorestu[j].score){ tstu[i].score;  stu[i].scorestu[j].score;  stu[j].scoret;              tstu[i].num;  stu[i].numstu[j].num;  stu[j].numt; }     for(i0;ik;i)printf(排名    学号    成绩\n %d       %d       %d\n,n,stu[i].num,stu[i].score);     printf(按任意键加回车返回主菜单!); scanf(%d,x);     getchar();  } void pagedis(){   printf( \n\n\n                   **********************************\n);   printf(                   *                                *\n);   printf(                   *                                *\n);   printf(                   *                                *\n);   printf(                   *     欢迎进入学生信息管理系统   *\n);   printf(                   *                                *\n);   printf(                   *                                *\n);   printf(                   *                                *\n);   printf(                   **********************************\n);   }void check(){   char userName[5];/*用户名*/   char userPWD[5];/*密码*/   int i,sum;   system(color 4E);   for(i  1; i  4; i)   {      /*用户名和密码均为abcde;*/    printf(   用户名和密码均为abcde\n\n);        printf(\n       请输入您的用户名:);        gets(userName);                printf(\n       请输入您的密码:);        gets(userPWD);                if ((strcmp(userName,abcde)0)  (strcmp(userPWD,abcde)0))/*验证用户名和密码*/        {            printf(用户名和密码正确显示主菜单);            return;        }        else        {            if (i  3)            {                printf(用户名或密码错误提示用户重新输入);                printf(用户名或密码错误请重新输入!);            }            else            {                printf(连续3次输错用户名或密码退出系统。);                printf(您已连续3次将用户名或密码输错系统将退出!);                exit(1);            }        }   }}void menu(){  STUDENTS stu[20];  int choice,k,sum;  sumread_file(stu);  if(sum0)   {  printf(首先录入基本库存信息按回车后进入*****\n);      getch();  suminput(stu);   }    do  {  system(cls);       printf(\n\n\n               ********学生信息管理系统********\n\n);     printf(                      1. 创建学生信息\n\n);     printf(                      2. 打印学生信息\n\n); printf(                      3. 查询学生信息\n\n);     printf(                      4. 修改学生信息\n\n);     printf(                      5. 删除学生信息\n\n);     printf(                      6. 学生成绩信息排名\n\n);     printf(                      0. 退出系统\n\n);     printf(                       请选择0-6:);     scanf(%d,choice);    switch(choice)    {      case 1: kinput(stu); break;/*创建学生信息*/      case 2: output( stu) ; break;/*打印学生信息*/      case 3: inquire(stu); break;/*查询学生信息*/      case 4: change(stu); break;/*修改学生信息*/      case 5: deletel(stu); break;/*删除学生信息*/      case 6: sort(stu); break;/*学生成绩信息排名*/      case 0: break;    }  }while(choice!0);  save_file(stu,sum);}int main(){         int i,sum;  pagedis();  check();  menu();     }} 转载于:https://blog.51cto.com/11649559/1789602