C语言成绩系统管理,要求用c语言数组的使用方式写出,尽量避免结构体和指针,并附有基本框架。求帮忙写出。

建立一个学生的简单信息表包括学号、姓名及一门课程的成绩。(注:定义一个结构体类型再定义一个结构体变量并赋值,输出结构体变量各成员)


  8.1 指针与指针变量的概念指針与地址运算符
  1.在C语言中,指针是指一个变量的地址通过变量的地址″指向″的位置找到变量的值,这种″指向″变量地址可形象哋看作″指针″用来存放指针的变量称为指针变量,它是一种特殊的变量它存放的是地址值。

  2.定义指针变量的一般形式为:

  類型名 *指针变量1*指针变量2,…;

  ″类型名″称为″基类型″它规定了后面的指针变量中存放的数据类型″*″号表明后面的″指针變量1″,″指针变量2″等是指针变量″*″号在定义时不能省略,否则就会变成一般变量的定义了″指针变量1″,″指针变量2″等称为指针变量名

  3.一个指针变量只能指向同一类型的变量。

  4.与指针和指针变量有关的两个运算符:

  (1)*:指针运算符(或称″间接访问″运算符)

  (2)&:取地址运算符

  通过*号可以引用一个存储单元如有如下定义:

  *p=10;或*&i=10;都能把整数10赋给变量i。这里等号左边的表达式*p囷*&i都代表变量i的存储单元。

  8.2 变量、数组、字符串、函数、结构体的指针以及指向它们的指针变量

  1.变量的指针和指向变量的指针变量

  2.c语言数组的使用指针和指向c语言数组的使用指针变量。

  所谓c语言数组的使用指针是指c语言数组的使用起始地址数组元素的指针是数组元素的地址。

  C语言规定数组名代表c语言数组的使用首地址也就是第一个元素的地址。

  3.字符串的指针和指向字符串的指针变量

  我们可以通过定义说明一个指针指向一个字符串。

  C语言将字符串隐含处理成一维字符数组但c语言数组的使用每个元素没有具体的名字,这一点跟字符数组不一样要引用字符串中的某个字符,只能通过指针来引用:*(s+0),*(s+1),…,*(s+n)

  4.函数的指针和指向函数的指針变量。

  指向函数的指针变量的一般形式为 :

  数据类型标识符 (*指针变量名)();

  这里的″数据类型标识符″是指函数返回值的类型

  函数的调用可以通过函数名调用,也可以通过函数指针调用(即用指向函数的指针变量调用)

  指向函数的指针变量表示定义了┅个指向函数的指针变量,它不是固定指向哪一个函数而只是定义了这样的一个类型变量,它专门用来存放函数的入口地址在程序中紦哪一个函数的地址赋给它,它就指向哪一个函数在一个程序中,一个指针变量可以先后指向不同的函数

  在给函数指针变量赋值時,只需给出函数名而不必给出参数因为函数指针赋的值仅是函数的入口地址,而不涉及到实参与形参的结合问题

  对指向函数的指针变量,表达式p+n,p++,p--等都无意义

  5.结构体的指针与指向结构体的指针变量

  一个结构体变量的指针就是该变量所占据的内存段的起始哋址。可以设一个指针变量用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址指针变量也可以用来指向结构体數组中的元素。

  8.3 用指针做函数参数

  函数的参数不仅可以是整型、实型、字符型等数据还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中

  8.4 返回指针值的指针函数

  一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型数據 即地址这种带回指针值的函数,一般的定义形式为:

  类型标识符 *函数名(形参表);

  8.5 指针数组、指向指针的指针

  1.指针数组指嘚是一个数组其元素均为指针类型数据,也就是说指针数组中的每一个元素都是指针变量。指针c语言数组的使用定义形式为:

  类型标识 *数组名[数组长度说明]

  指针数组可以使字符串处理更加方便

  2.指向指针的指针是指指向指针数据的指针变量,一个指向指针数据的指针变量的一般形式为:

  8.6 main函数的命令参数

  指针c语言数组的使用一个重要应用是作为main函数的形参一般来说,main函数后的括号中是空的即没有参数。实际上main可以有参数如:

  其中,argc和argv就是main函数的形参其他函数形参的值可以通过函数调用语句的实参中嘚到,由于main函数是由系统调用的因而main函数的形参值不能从程序中得到,但可以在操作系统状态下将实参和命令一起给出,从而使main函数嘚形参得到值命令行的一般形式为:

  命令名 参数1 参数2…参数n

  命令名和各参数之间用空格分隔开。

  8.7 动态存储分配

  在C语言Φ有一种称为“动态存储分配”的内存空间分配方式:程序在执行期间需要存储空间时通过“申请”分配指定的内存空间;当闲置不用時,可随时将其释放由系统另作它用。本节介绍C语言中动态分配系统的主要函数:malloc()、calloc()、free()及realloc()使用这些函数时,必须在程序开头包含文件stdlib.h

  函数功能:从内存中分配一大小为size字节的块。

  参数说明:size为无符号整型用于指定需要分配的内存空间的字节数。

  返回值:新分配内存的地址如无足够的内存可分配,则返回NULL

  说明:当size为0时,返回NULL

  2.主内存分配函数――calloc()

  函数功能:从内存中分配n个同一类型数据项的连续存储空间,每个数据项的大小为size字节

  参数说明:n为无符号整型,用于指定分配的数据项的个数size为无符号整型用于指定需要分配的数据项所占内存空间的字节数。

  返回值:新分配内存的地址如无足够的内存可分配,则返回NULL

  3.重新汾配内存空间函数――realloc()

  函数功能:将block所指内存区的大小改为size字节的块。

  参数说明:block为void类型的指针指向内存中某块,size为无符号整型用于指定需要分配的内存空间的字节数。

  返回值:新分配内存的地址如无足够的内存可分配,则返回NULL

  4.释放内存函数―free()

  函数功能:将calloc()、malloc()及realloc()函数所分配的内存空间释放为自由空间。

  参数说明:block为void类型的指针指向要释放的内存空间。

利用结构体和重载函数实现利用鈈同字段存储并查询学生信息

利用结构体和重载函数实现利用不同字段存储并查询学生信息。 学生信息包括:学号姓名,性别专业,班级寝室。

我要回帖

更多关于 c语言数组的使用 的文章

 

随机推荐