程序设计基础c语言6_1内存地址的操作——指针.ppt

程序设计基础c语言6_1内存地址的操作——指针.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 6 章 内存地址的操作 6.1 、变量的地址和指针 6.2 、指针变量 6.3 、指针的使用 -- 指针 6.1 、变量的地址和指针 1 .地址的概念 每一个内存单元都有一个唯一的编号,这 个编号称为该内存单元的“地址” a 2 、变量的“地址” 9 为变量分配的内存单元的地址。 变量的地址即 变量的“指针” 。 如: int a=9; scanf (“%d”, a ); 6.2 、指针变量 int i=3, j=6, k=9; ? 1. 指针变量 存放地址的变量。 若 pt 是一个指针变 量,如右图 : 2000 2004 2008 3010 内存用户数据区 3 变量 i 6 变量 j 9 变量 k 2000 变量 pt 2 、指针变量的声明和初始化 1 )指针变量的声明 指针的基类型 一般形式为: 类型名 * 指针变量名 例 : int *pt_1 , *pt_2 ; // 指向 int 型数据的指针 char *pt_3 ; // 指向 char 型数据的指针 float *pt_4; // 指向 float 型数据的指针 3 、指针变量初始化及赋值 1 ) 通过求地址运算符 () 获得 如: int x=2 ; int *p= x , *q; // 初始化 q=x; // 赋值 2 )通过指针变量获得 P x 2 x q x 如: int x=2 ; int *p=x, *q= p ; // 初始化 q=p; // 赋值 例 6.1 ,使用指针变量在屏幕上显示变量 的地址值 #include stdio.h void main() { int a=5, *pa; char c=#, *pc; pa=a; //pa 指向 变量 a pc=c; //pc 指向 变量 c printf(a=%p\n, pa ); printf(c=%p\n, pc ); } 6.3 、指针的使用 ? 用指针实现间接寻址,访问内存单元。 ? 间接寻址运算符 * 例如: int x=10, y, *p; p=x; y=*p; y=*p+1; *p=*p+2; x 10 12 y 10 11 *p p 例 6.2, 通过指针输出变量的值 p1 main( ) a a 100 { int a,b,*p1,*p2; p2 a=100; b=10; b p1=a; p2=b; printf(%d,%d\n,a,b); printf(%d,%d\n, *p1, *p2 ); } *p1 b 10 *p2 运行结果 100,10 100,10 使用指针变量注意事项 ? 先定义,后使用 它的内容只能是地址 – 必须初始化后才能使用,否则指向不确定的存 储单元 – 只能指向同一基类型的变量 ? 使用原则 – 明确指针指向了哪里 – 明确指针指向单元的内容是什么 – 永远不要使用未初始化的指针变量 ? 练习题 一 、 若有定义 char ch; 按要求写出语句 : 1. 定义一个指向字符的指针 p 2. 指针 p 指向字符变量 ch 3. 通过指针 p 给 ch 输入字符 4. 通过指针 p 给 ch 赋字符‘ A 5. 通过指针 p 输出 ch 中的字符 char *p; p=ch; scanf(“%c”,p); *p=‘A; printf(“%c”, *p);

文档评论(0)

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

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档