C语言

计算机二级C语言考点解析

时间:2022-12-11 02:30:02 C语言 我要投稿
  • 相关推荐

2017计算机二级C语言考点解析

  大家在备考计算机二级考试时要掌握考点,这样复习才有方向,以下是百分网小编整理的计算机二级C语言考点解析,更多计算机二级考试信息请继续关注应届毕业生考试网。

  8.1 指针与指针变量的概念,指针与地址运算符

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

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

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

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

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

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

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

  (2)&:取地址运算符

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

  int i=123,*p,k;

  则 p=&I;或k=*p;或k=*&I;都将变量i中的值赋给k。

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

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

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

  2.数组的指针和指向数组的指针变量。

  所谓数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8.3 用指针做函数参数

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

  8.4 返回指针值的指针函数

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

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

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

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

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

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

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

  类型标识 * *p;

  8.6 main函数的命令参数

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

  main(argc,argv)

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

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

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

  8.7 动态存储分配

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

  1.主内存分配函数—malloc()

  函数格式:void*malloc(unsigned size);

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

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

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

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

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

  函数格式:void*malloc(unsigned n,unsigned size);

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

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

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

  3.重新分配内存空间函数——realloc()

  函数格式:void*realloc(void *block,unsigned size);

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

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

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

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

  函数格式:void free(void*block);

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

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

  返回值:无。

  9.1 一维数组的定义、初始化和引用

  1.一维数组的定义方式为:

  类型说明符 数组名[常量表达式]

  (1)数组名的命名方法与变量名相同,遵循标识符命名规则;

  (2)数组是用方括号括起来的常量表达式,不能用圆括号;

  (3)常量表达式表示数组元素的个数,即数组的长度,数组的下标从0开始,下标的最大值为:常量表达式-1;

  (4)常量表达式中可以包括常量和符号常量,不能包括变量。

  可以用赋值语句或输入语句使数组中的元素得到值,但要占用运行时间。可以使数组在运行之前初始化,即在编译阶段使之得到初值。

  2.对数组初始化可以用以下方法实现:

  (1)在定义数组时对数组元素赋以初值。如:

  static int a[10]={0,1,2,3,4,5,6,7,8,9};

  经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。

  (2)初始化时可以只对一部分元素赋初值。例如:

  static int a[10]={0,1,2,3,4};

  定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。

  (3)如果想使一个数组的元素值全部为0,可以用下面的方法:

  static int a[10]={0,0,0,0,0,0,0,0,0,0};

  不能用:

  static int a[10]={0*10};

  如果对static型数组不赋初值,系统会对定义的所有数组元素自动赋以0值。

  (4)在对全部数组元素赋初值时,可以不指定数组长度。

  3.一维数组的引用方法是:

  C语言规定不能一次引用整个数组,引用时只能逐个元素引用,数组元素的表示形式为:

  数组名[下标]

  下标可以是整型常量或整型表达式。如:

  a[0]=a[5]+a[7]-a[2*3];

  9.2 二维数组的定义、初始化和引用

  1.二维数组定义的一般形式为

  类型说明符数组名[常量表达式][常量表达式]

  C语言采用上述定义方法,我们可以把二维数组看做是一种特殊的一维数组:它的元素又是一维数组。在C语言中,二维数组中元素的排列顺序是:先按行存放,再按列存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

  2.二维数组的初始化:二维数组可以用下面的方法初始化:

  (1)分行给二维数组赋初值。如:

  static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

  以上赋值把第一个花括号内的数据赋给第一行元素,第二个花括号内数据赋给第二元素…,即按行赋值。

  (2)可以将所有的数据写在一个花括号内,按数组排列的顺序对各元素赋值。

  (3)可以对数组的部分元素赋初值。如:

  static int a[3][4]={{1},{5},{9}};

  以上赋值的结果是:数组第一列的元素分别赋了初值1,5,9,其余元素的值都是0。

  (4)如果对二维数组的全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

  3.二维数组的引用:二维数组的元素可以表示为:

  数组[下标][下标]

  在引用二维数组时,必须是单个元素,不能是整个数组名。下标可以是一个表达式,但不能是变量。如果下标是一个表达式,注意表达式的值不能超出数组定义的上、下限。

【计算机二级C语言考点解析】相关文章:

C语言考点习题09-28

计算机二级C语言考试必看技巧09-24

计算机二级考试《C语言》的考生技巧09-28

计算机二级C语言模拟练习题10-14

2024计算机二级C语言备考提分题01-02

2023计算机二级C语言文件知识点04-15

计算机二级《C语言》选择题题库及答案11-16

计算机二级C语言考试冲刺练习题11-15

2023计算机二级C语言测试题及答案04-26

计算机二级《C语言》基础练习题及答案02-06