- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]C语言 第8章 构造数据类型指针1指针的基本概念和数组
第三节 指针和数组 1、指向一维数组元素的指针 2、通过指针变量来引用一维数组的元素 3、指针变量的运算 * 用字符数组实现。例如: char str[ ] = C language; 用字符指针实现。例如: char *pstr = C language; 或 char *pstr; pstr = C language; 1、字符串的表示形式 * 例:输入一字符串并输出它。 用字符指针来实现。 * 例1: 将字符串 a 复制到字符串 b。 * 2、指向字符串指针变量的应用 * 例1: 将字符串 a 复制到字符串 b。 * * 例2: 输出字符串中的部分数据 * * 练习: * 请读程序片段: char str[ ]=”abcd”,*p=str;printf(“%d\n”,*(p+1)); 上面程序片段的输出结果是( )。 字符a的ASCII码 字符b的ASCII码 字符‘a’的地址 字符‘b’的地址 B * 3.以下程序的输出结果是( )。 * * 3.以下程序的输出结果是( )。 A. 6 B. 因实参类型与形参类型不一致,函数用产生错误 C. 3 D. 因fun函数无返回值类型,故编译时提示产生错误 * C * 指针运算符*和指针定义中的标志*不是一回事!在声明语句中,*是类型声明的标志,表示其后的变量是指针类型,而表达式中出现的*则是一个运算符,用以对指针变量所指的对象取值 * * * * * 主要内容 1、概述 2、指针变量的定义和使用方法 3、指向一维数组元素的指针 4、指向字符串元素的指针 5、数组、指针作为函数的参数 6、指针与函数 7、指针数组 * 地址运算符 功能:取变量地址运算符 单目运算符; 操作数应为各种类型的内存变量、数组元素、结构体成员等; 操作数不能是表达式、常量; * * 指针运算符 * 功能 :取指针所指的变量的值 获得指针指向的内存数据 又称“间接访问运算符” 单目运算符 * 主要内容 1、概述 2、指针变量的定义和使用方法 3、指向一维数组元素的指针 4、指向字符串元素的指针 5、数组、指针作为函数的参数 6、指针与函数 7、指针数组 * 2、指针变量的定义 定义格式 指向的类型说明符 *指针变量名; 例: int *pt; * — 指针标记。 pt — 指针变量名 int — pt是指向整数类型的指针变量。 * * 指针变量初始化: int a; int *p=a; 赋值语句: int a; int *p; p=a; * 2、指针变量的赋值: 注意: 1.不允许把一个数值赋给指 针变量 int *p; p=1000; 错误!! 2.被赋值的指针变量前不能 再加*说明符 *p=a; 错误!! * C语言访问变量的方式 * 直接访问方式 按变量的地址存取变量的值 。 间接访问方式 按变量的地址的地址存取变量的值。 * 指针变量作为函数的参数 指针变量存放的是地址值,同样可以作为函数的参数来进行“地址传送”; 实际参数可以是地址常量或指针变量; 形式参数则为指针变量。 * * p1 p2 temp *p1或a *p2或b a的值 b a 3 5 3 5 3 * * swap( )能否写成下面的形式呢? * 这个程序能否实现两 个变量内容的交换? * 主要内容 1、概述 2、指针变量的定义和使用方法 3、指向一维数组元素的指针 4、指向字符串元素的指针 5、数组、指针作为函数的参数 6、指针与函数 7、指针数组 * 1、指向一维数组元素的指针 数组名是一个基类型为数组元素的基类型的地址常量。 数组存储在一片连续的空间里。 这片区域的首地址值存入数组名中。 数组名相当于地址常量。 * * 1、指向一维数组元素的指针 例: int *p; int a[5]; 则:p = a[0]; 或 p = a; * * 2、通过指针变量来引用一维数组的元素 设有定义:int a[8],i; int *p = a; 引用数组元素的方法: 下标法: a[i] p[i] 指针法:*( a+i ) *(p+i) * * 3、指针变量的运算 设 P 为指针变量,则: p++ —— p 向后移动一个单位(地址增大) p-- —— p 向前移动一个单位(地址减小) p+n —— p 向后移动 n 个单位(地址增大) p-n —— p 向前移动 n 个单位(地址减小) “单位”是指针的基类型所占的字节数 “单位”是什么
文档评论(0)