- 1、本文档共96页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 指针 基本概念 指针运算 指针与数组 指针与字符串 指向指针的指针 命令行参数 本章小结 基本概念 指针是高级程序设计语言中一个重要的概念 正确灵活运用指针 可有效地表示和使用复杂的数据结构 可动态分配内存空间,节省程序运行空间,提高运行效率 不正确理解和使用指针,指针将是程序中最危险的成分,由此带来的后果可能是无法估量的。 数据在内存中的存储和访问方式 每个变量 在计算机内存占用一块存储区 该存储区的地址就是相应变量的地址 变量可能有值 该存储区保存的内容就是相应变量的值 例如有变量声明 char c=S; int v=27,u=32; int *p = v; 则编译程序分别给变量 c 、v 、u 、p 分配存储空间如图所示 必须理解清楚: 给变量分配的内存区域、 该内存区域的地址、 该内存区域保存的内容, 以及它们之间的关系 一个变量v的指针或称指向变量v的指针 就是给它分配的内存区域的地址 或说是给它分配的内存区域的地址首地址 访问变量 直接访问:直接使用变量v的名字 int v=10; v=v*10; 间接访问:使用指向相应变量的指针 比如访问变量 v 可以用下面方式来实现: *p 算式 (*p)*10 同样得到值100 。它通过指向 v 的 指针变量 p ,采用间接访问的方式实现对变量 v 的访问,取出变量 v 的值参与运算。 指针类型 指针类型和基类型 在C中,任何一个类型都伴随着一个指向本类型变量的指针类型 表现形式 设有类型T,则指向T类型变量的指针类型用: T * 表示,T称为该指针类型的基类型。 指针变量 意义 指针变量简称指针 是一种特殊的变量 它里面存储的“值”被解释成为一个变量的地址,确切的说是计算机内存的一个地址。 声明指针变量 说明指向T类型变量的指针变量使用形式: T *p , *p , … *p ; 其中,每个p都是标识符,是被说明的指针类型的变量,确切的说是“指向T类型变量的指针变量”。 指针所指向的类型可以是 基本数据类型 构造型数据类型 指针类型 函数 经常简称 “指向T类型变量的指针变量v” “v指向T类型” “T类型的指针v” 例如 int *iptr1, *iptr2 ; /* 说明指向int类型变量的指针变量 iptr1和iptr2 */ char * cptr ; // 说明指向char类型变量的指针变cptr int x , y ; char ch = a’; 指针变量的值是内存地址(宏观上讲是变量的地址) 求取不同类型变量或常量地址的表达方式不同: 基本类型变量、数组成员、结构体变量、联合体变量等,用求地址运算符“”获取变量的地址; 数组的地址与其第一个元素(成员)的地址相同,用数组名字本身表示; 函数的地址为函数的入口地址,用函数名字表示 指针与数组的关系 数组名(数组变量)本身就是一个指针,可以认为它是一个常量指针 可以定义指向数组的指针和指针数组等等 例子 int w[5]; int *pw=w ; // pw表示数组w 或者说指向变量w[0] int *q=w[2]; // q指向变量w[2] int rr[10][5],(*pr)[5]; // pr是指向一维数组的指针, // 该一维数组有5个元素,每 // 个元素是一个整数 pr=rr; // pr指向一维数组rr[0], //该rr[0]有5个元素 int *qr[5]; // qr是指针数组,有5个元素, // 每个元素是一个指向int类变量的指针 int *(tr[5]); //同qr 。tr是指针数组,有5个元素, //每个元素是一个指向int类变量的指针 qr[1]=y; // qr[1]指向变量 y 指针所指变量 指针变量和指针所指变量是两个不同的概念 指针变量即指针,它本身存储某个内存地址(某个变量的地址)。 指针所指变量为指针变量中所保存的内存地址对应的变量。 例7-1 指针变量与指针所指变量 该程序运行过程为: 程序第7行输出提示信息 在键盘输入23 程序第9行输出提示信息 在键盘输入45 程序第11行输出提示信息 在键盘输入r 程序第16行输出 程序第17行输出 v
您可能关注的文档
- 《8.3实际问题与二元一次方程组》课件2.ppt
- ACS业务培训(商业银行).ppt
- 《8.2消元——解二元一次方程组》课件3.ppt
- 《8.4三元一次方程组的解法》课件1.ppt
- 《8.4三元一次方程组的解法》课件4.ppt
- AFP资格认证串讲(1天).ppt
- 《“创新求变”的中唐诗》课件.ppt
- 《“龙腾虎掷”稼轩词》课件.ppt
- allophone音位变体.ppt
- apple定语从句.ppt
- 书面表达之建议信(讲义)-中考英语一轮复习(含答案).pdf
- 中考历史复习小众题型类:填空题、改错题、判断题(70题).pdf
- 2024年吉林省县乡教师选调考试《教育学》真题汇编带解析必背【基础题】.pdf
- 2025年中考语文备考之《朝花夕拾》名著导读及考题.pdf
- 小说标题的含义和作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 阅读理解之应用文(练习)-中考英语一轮复习(含答案).pdf
- 小说情节作用(模拟突破)-2025年中考语文考点突破之小说阅读(原卷版).pdf
- 小说段落作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 小说段落作用(试题专练)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 2025年上海市16区初三语文一模试题汇编之现代文阅读二(记叙文)学生版.pdf
文档评论(0)