国防《程序设计基础》教学资料包 教学课件 第8章.pptVIP

  • 0
  • 0
  • 约7.6千字
  • 约 47页
  • 2021-12-07 发布于湖北
  • 举报

国防《程序设计基础》教学资料包 教学课件 第8章.ppt

8.3 指针与函数 8.3.1 指针作为函数参数 6.指向数组作为函数参数 指针数组作为函数参数实际上与数组名作为函数参数和指向指针的指针作为函数参数是相同的。 8.3 指针与函数 8.3.2 指针函数 前面所用到的函数中,实参或形参都可以是指针变量,但返回值都不是指针,而是某一实际值。实际上,不同类型的指针是可以作为函数返回值的。指针函数就是返回值指针的函数。 类型说明符 函数名(参数列表); 指针函数的定义格式如下: char *linkstr(str1,str2); 这是一个指针函数,函数名是linkstr,该函数有两个参数 str1和 str2,该函数的返回值是一个char型指针。 8.3 指针与函数 8.3.3 指向函数的指针变量 变量是与其存储单元相联系的,通过变量名可以得到变量的存储地址。一个函数包含一组指令序列,存储在某一段内存中,这段内存空间的起始地址为函数的入口地址,通过该地址也可以找到这个函数,故称函数的入口地址为函数的指针。在实际应用中,可以定义一个指针变量,其值等于该函数的入口地址,使其指向这个函数,这样通过这个指针变量也可以调用这个函数。这种指针变量成为指向函数的指针变量。而这种调用函数的方式与前面用函数名来调用函数的方式是不一样的。定义指向函数的指针变量的一般格式如下: 类型说明符 (*指针变量名)(); 8.3 指针与函数 8.3.3 指向函数的指针变量 用一个函数名给指向函数的指针赋值,则该指针指向该函数所存放在内存中的入口地址,即一个函数存放在内存中的入口地址是用函数名来表示的,而不必给出参数,也不要圆括号。用指向函数的指针调用函数时,只需使用如下格式: *(指针变量名)(实参表) 8.4 指针与字符串 8.4.1 字符串的表示形式 1.用字符数组实现 2.用字符指针实现 可以不定义字符数组来实现字符串的操作,而通过字符指针来访问字符串中的存储区。 char *ps; ps=modi string; 此时,字符指针ps指向该字符串常量中的首字符“m”,使用指针ps的加、减运算即可移动指针,以便能访问到该字符串的任何一个字符,并进行存取操作。 返回 8.4 指针与字符串 8.4.2 字符指针作为函数参数 将一个字符串从一个函数传递到另一个函数,可以用地址传递的方法,即用字符数组名作为参数或用指向字符串的指针作为参数。在被调函数中可以改变字符串的内容,在主调函数中可以得到改变了的字符串。 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (1)字符数组由若干元素组成,每个元素中存放一个具体的字符,而字符指针变量中存放的是地址即字符串的首地址,通过指针指向相应的字符,而不是用指针变量去存放字符串中的每一个字符。 (2)赋初值的方式不同。对数组赋初值要用static存储类型,例如: static str1[]={I will do my best!}; 而对字符指针变量赋初值不必加static存储类型,例如: char *ps=I will do my best!; 这是因为并没有对数组初始化,只是对指针变量初始化。 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (3)赋值方式不同。字符数组只能对各个元素赋值,不能用以下方法对字符数组赋值: char str[14]; str=I will do my best!; 而对字符指针变量,可以采用下面的方法赋值: char *a; a=I will do my best!; 但赋给a的不是字符,而是字符串的首地址。 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (4)指针变量赋初值时方法灵活多样。例如,对以下的变量定义和赋初值: char *a=I will do my best!; 等价于: char *a; a=I will do my best!; 而对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值,例如: static char str1[14]={I will do my best!}; 不等价于: char str1[14]; str1[]=I will do my best!; 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (5)定义一个数组,在编译时即已分配内存单元,有确定的地址。而定义一个字符指针变量,给指针变量分配内存单元,在其中可以放一个地址值,即该指针变量可以指向一个字符型数据,但如果未赋予它一个地址,则它并不具体指向哪一个字符数据

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档