程序设计基础ch5上课讲义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言中提供了地址运算符&来表示变量的地址。其一般语法形式为: &变量名
如&a变示变量a的地址,&b表示变量b的地址。变量本身必须预先说明 取内容运算的一般语法形式是:
*地址 这里“地址”可以是指针变量名、数组名或表示地址的整型表达式
2020/6/Βιβλιοθήκη 7程序设计基础 张杰敏2
5.1 指针与地址(3)
④.说明:指针仅能做以上几种算术运算,除此之外的运算即是非法的
2020/6/27
程序设计基础 张杰敏
4
5.3 指针与函数参数
函数调用过程中有传值和传址两种参数传递方法 指针作为函数参数,使得函数的调用灵活、高效 指针与函数参数的配合使用,常见有三种:
函数的参数为指针型、 函数的返回值为指针型 函数指针(指针的基本类型为函数) 举例说明
字符串的指针,又称字符指针,本身是一个变量,用于存放字符串的首地址 字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为
串的结束 字符串虽然是字符数组,但是字符数组和字符指针的概念不同,用字符串指
针方式与字符数组方式使用字符串时是有区别的,两者的意义如图 初始化赋值
字符串指针方式: char *ps; ps=" Student personnel file"; 对数组方式: char st[] = {"Student personnel file"};
2020/6/27
程序设计基础 张杰敏
5
5.4 数 组(1)
在计算机高级语言中,把具有同一名字,互 相有联系且按一定顺序排列的变量称为数组
数组中的每一变量都用不同的下标来区别, 称为数组元素,0作为第一个元素的下标
需要使用数组时,先要进行定义,然后才能 使用
2020/6/27
程序设计基础 张杰敏
数据时,其表达形式具有相同意义。 p+i→ *(p+i)
a[i]
但指针与数组名具有本质上的不
同,数组名是地址,也可理解为指
……

针常量,而指针是地址变量。 指
针在使用前必须先赋予一定的地 p+9→ *(p+9)
a[9]
址值
指针引用数组元素
2020/6/27
程序设计基础 张杰敏
10
5.6 字符串的指针
指针的比较 两个指针在一定条件下可以进行比较。如果两个指针p和q指向同一数组,则
它们可以进行〉,〉=,〈,〈=、==和!=等比较运算。例如:
p<q 若指针p指向的位置位于指针q指向的位置之前,则其值为真;反之则为假
p==q 若指针p和q都指向同一个变量,则其值为真;否则为假
p==0 若指针p为一个空指针,则其值为真;反之为假
③字符数组的输入/输出方式除了逐个元素(字符)输入输 出外,还可以用”%s”格式符整体输入/输出
④输出字符不包括结束符’\0’
2020/6/27
程序设计基础 张杰敏
8
5.4 数 组(4)
①二维数组的定义。一般语法形式为: 类型说明符 数组名[常量表达式][常量表达式]
②二维数组的理解:可以把二维数组看成是一个一维数组,这个一 维数组的每个元素又是一维数组
指针 用指针取 元素 值
一个指针变量既可以指向一个数
p → *(p+0)
a[0]
组,也可以指向一个数组元素,
如果指针指向了数组,也就是指 p+1→ *(p+1)
a[1]
向了数组的第一个元素(首地址)
当使指针p指向数组a后,可以用 p+2→ *(p+2)
a[2]
指针p访问数组的各个元素
……

指针和数组在访问内存地址中的
数组名[下标]
2020/6/27
程序设计基础 张杰敏
7
5.4 数 组(3)
用来存放字符数据的数组是字符数组。字符数组中的一 个元素存放一个字符。几点需要说明:
①要区别“字符”和“字符串”,字符变量或字符数组 的一个元素只能存放一个字符,用单引号引起来
② C语言规定了一个“字符串结束标志”,以字符‘\0’ 代表
③二维数组的元素在内存中的存放循序。按行存放 ④二维数组中元素的引用。用数组名和下标引用元素 ⑤二维数组的初始化 多维数组的一般语法形式为:
类型 数组名[第n维长度][第n-1维长度]......[第1维长度]
2020/6/27
程序设计基础 张杰敏
9
5.5 数组的指针
指向一个数组的指针称为数组指 针,可把数组名或第一个元素的 地址赋予它
p!=0 若指针p不是空指针,则其值为真,反之为假
2020/6/27
程序设计基础 张杰敏
3
5.2 指针算术运算
对指针来说,有加,减两种算术运算,可用的算术运算符有: +,-,++,--,+=和-= 运算规则如下:
①指针的算术运算是根据其类型的长度确定增减量来进行。由于地址计算与 其相应数据类型占字节数有关,故指针的增减量,根据其类型的长度确定。 ②++(--): 指针增1运算,即指针向前移动一个数据的位置,指向的新地址为 原地址+(-)sizeof( 类型说明符). 如设: int *p=&k;
程序设计基础ch5
5.1 指针与地址(2)
指针变量的说明包括类型说明、指针变量名和指针所指向的变量的数据 类型三个内容,其一般语法形式为:
类型说明符 *变量名 其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说 明符表示本指针变量所指向的变量的数据类型
例如:int *p1;表示p1是一个指针变量,它的值是某个整型变量的地址
则若k的地址为2000, p++ 以后P的值变为2002,而非2001。p每增一 次,就将指针指向后一个整数(两个字节),P--后为1998而非1999. ③+(-):指针变量加(减)正整数n,即表示指针向后(前)移动n个数据,使该指针 所指向的地址为原地址+(-) sizcof(类型说明符)*n。如:p=p+5; 之后p值为 2000+5*2=2010。
6
5.4 数 组(2)
一维数组的说明格式。一般语法形式为: 类型 变量名[长度]
类型是指数据类型, 即每一个数组元素的数据类型, 包括 整数型、浮点型、字符型、指针型以及后面要讲述的结 构和联合 一维数组的初始化赋值的一般语法形式为:
类型说明符 数组名[常量表达式]={值,值……值} C语言规定定义数组的同时可作初始化赋值。在{ }中的 各数据值即为各元素的初值, 各值之间用逗号间隔 一维数组的引用。C语言规定只能逐个引用数组元素而 不能一次引用整个数组。数组元素的表示形式为
相关文档
最新文档