1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 指针 内容提要: 指针的概念 变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量 字符串的指针和指向字符串的指针变量 函数的指针和指向函数的指针变量 返回指针值的函数 指针数组和指向指针的指针 §10.1 指针的概念 1. 变量的地址 计算机中,数据存储在内存中; 内存划分为若干个存储单元,每个存储单元存放8位二进制数; 内存地址采用线性地址编码,每个单元具有唯一一个地址编码。 §10.1 指针的概念 2. 变量的访问方式 (1)直接访问 直接按变量地址存取变量值 §10.1 指针的概念 如:p为指针变量,它存放整型变量a的首地址。 我们称指针变量p指向整型变量a §10.2 指针变量的定义与引用 1. 指针变量的定义 2. 指针变量的赋值 指针变量的值为地址,是个无符号整数。 但不能将整型常量赋给指针变量。 例如:int *p;p=1000; × (1)用变量的地址给指针变量赋初值(地址运算符求) 如:int a,b,*p; p=a; 注意:变量的类型必须与指针变量的类型相同 被赋值的指针变量前不能再加“*”说明符 。 如:*p=a × 指针变量的赋值 (2)用相同类型的指针变量赋值 如:int a; int *p1,*p2; p1=a; p2=p1; 注意:指针变量若不赋初值,则指针变量的值是随机的 (3)赋空值 如:p=NULL; 或 p=0; (4)指针变量赋初值的方法 ① 赋空值 ② 用已定义的变量的地址赋值 3. 指针变量的引用 (1)两个有关的运算符:* 形式: 取地址运算符 * 指针运算符 含义:a 表示变量a所占据的内存空间的首地址 *p 表示指针变量p所指向的内存中的数据 引用:通过指针变量访问所指变量 ① 将指针变量指向所访问的变量 如:int a=5,*p,b; p=a; ②访问所指变量: 取内容 b=*p; printf(“%d\n”,*p); 存内容 *p=100; 注意: *p若出现在”=”的右边或其它表达式中则为取内容 *p若出向在”=”的左侧则为存内容 (2)运算规则 *、:优先级相同,且是右结合 与++,--,!等单目运算符的优先级相同,高于算数运算符 例如: 例10.2 读程序 4. 指针变量作函数的参数 指针变量作为函数的参数,它的作用是将一个变量的地址 传送到另一函数中 例10.4 编写一个函数,实现两个数的交换 §10.3 数组与指针 1. 一维数组与指针 (1)数组是连续存放的若干个数据元素的集合 (2)数组名就是指向此数组第一个元素的指针(数组首地址) 如:int a[10], *p; 则p=a等价于p=a[0]; (3)数组中某一元素的地址:p=a[i] 用指针引用该元素:*p a[i] (4)数组元素的下标在内部实现时,统一按 “基地址+位移” 的 方式处理 即:a 、a+1、a+i, 故表示数组元素的地址可用:p+i、a+i 表示数组元素的内容可用:a[i]、*(p+i)、*(a+i) 注意:数组名a和指向数组首地址的指针变量p不同,a不是变量 例10.6 读程序,写出结果 一维数组在内存中的存放形式: (5)数组指针、指针变量与数组元素之间的关系 设有int a[10], *p=a; 则 例10.7 数组的使用 2. 指针的运算 (1)赋值运算 如:p=x p=a p=NULL 注:指针类型相同 (2)加减运算 用法:指针±整数

文档评论(0)

dd545454 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档