- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 指针(Pointer) * 什么 是 指针 ? 指针 是 一种 变量 指针 是 一种 特殊类型 的 变量 一个指针变量的值 是 另一个变量的地址 * 既然指针变量的值就是一个内存存储单元的地址,那么我们可以根据指针变量来访问它所指向的内存区域。 但是,这个内存区域有多大、存放的又是什么东西呢? 我们可以在定义指针变量的时候,通过指定它所指向的内存区域所对应的变量的类型来指明内存区域的大小。例如: int *pi; // 定义一个名为pi的指向整数类型变量的指针(每4个字节是一个整体) double *pf; // 定义一个名为pf的指向双精度浮点类型变量的指针(每8个字节是一个整体) 我们称pi、pf为指针变量,pi是一个整数指针,pf是双精度浮点数指针。不管指针变量指向的数据类型是什么,指针变量在内存中始终占用4个字节!。 指针变量 是什么? 为什么? * 指针变量 是什么? 回顾一下CPU和内存之间的数据交换 地址总线——32位 数据总线 控制总线 内存的地址值其实就是一个32位的整数! 如果是64位的程序,指针变量的大小是多少? * 如何声明 一个指针变量 int *ptr; 指针变量的名称 指针变量的类型 ptr 是一个指向整型变量的指针 * 定义各种类型的指针变量 定义一个指针变量: 类型 * 指针变量名 = 指针初值; 其中的“类型” 是指针指向的变量的类型 字符类型的指针变量 char *message; 指向数值类型的指针变量 int *a, *b; //注意每个指针变量都要有自己的“*” float *f1; double *d1; 指针数组,数组元素是指向整数类型变量的指针 int *pointers[10]; 特殊的指针:空类型指针(需要时可以强制类型转换) void *pointer; 假设:指针pointer指向的那段内存中存储的数据是A(一串01) 该类型指针的含义是: A的数据类型在定义该指针时还不清楚。 而C语言是对数据类型规定比较严格的编程语言,所以当使用A时,需要先做强制类型转换,明确指出A的类型。 思考:为什么? * 如何对 一个指针变量 赋值? int x,*ptr; ptr = x; ptr 是一个指向 整型变量x 的指针 * 指针相关的运算符 :求地址运算符 *:指针运算符 若执行了p=m,则 *p 与 m 等价,都代表变量m的存储单元 void main() { int m = 0; int n = 0; int *p; // 求m的地址赋值给变量p p = m; // 给p所指向的变量赋值1 *p = 1; p = n; *p = 2; // 读取p所指向的变量的值 m = *p; } * 指针变量的值是地址1100110011001100110011001100110011001100110011001100110011001100 void main() { int m = 0; int n = 0; int *p; // 求m的地址赋值给变量p p = m; // 给p所指向的变量赋值1 *p = 1; p = n; *p = 2; // 读取p所指向的变量的值 m = *p; } 0xFAC2AB24 p 0xFAC2AB2C m0000000000000000 0xFAC2AB28 n000000000000000010101011111110100000000000000000000000000000000010101011111110100000000000000000 * 如何通过指针 访问另一个变量的值 #include stdio.h int main(){ int x, *ptr; ptr = x; scanf(“%d”, x); x += 1; printf(“%d\n”, x); return 0; } #include stdio.h int main()
您可能关注的文档
- 包装上文字内容演示课件.ppt
- 包装设计需求-海洋食品发展规划.版演示课件.ppt
- 包装设计需求-海洋食品发展规划.精选演示课件.ppt
- 包装设计作品点评_ppt演示课件.ppt
- 包装生产线.(最新修正版)演示课件.ppt
- 包装中常用纸包装材料演示课件.ppt
- 宝贝标题关键词的优化演示课件.ppt
- 宝鸡市第一中学 王丽娜概述演示课件.ppt
- 宝鸡铁一中高三年级组 雷永长概述演示课件.ppt
- 宝洁公司的市场细分 宝洁公司(Procter & Gamble)生产11种...14演示课件.ppt
- 北京大学2007年国家自然科学基金申请布置会汇总1057演示课件.ppt
- 北京大学2011年度国家自然科学基金申请工作介绍汇总1058演示课件.ppt
- 北京大学2011年度国家自然科学基金申请工作介绍演示课件.ppt
- 北京大学第三医院专家-顾芳介绍汇总1059演示课件.ppt
- 北京大学就业政策解读演示课件.ppt
- 北京大学刘意青德州-2012725演示课件.ppt
- 北京大学深圳研究生院经济学与中国改革发展 海闻教授 2006...演示课件.ppt
- 北京大学深圳研究生院经济学与中国改革发展 海闻教授 2006...-演示课件.ppt
- 北京大学深圳研究生院经济学与中国改革发展海闻教授2006演示课件.ppt
- 北京大学深圳研究生院经济学与中国改革发展-海闻教授-2006演示课件.ppt
最近下载
- 五恒系统方案书.pdf VIP
- 全套干扰峰分析图解析.docx
- 第十五讲新时代与中华民族共同体建设(2012— -中华民族共同体概论专家大讲堂课件.pdf VIP
- 种植施肥机械——栽植机械(水稻钵苗栽植机械)课件讲解.pptx VIP
- 企业工会助推企业高质量发展.docx VIP
- 施工技术管理措施.doc VIP
- 第六章维生素与辅酶.ppt VIP
- DB65T 4063-2017 沙化土地封禁保护区沙障技术技术工程.pdf VIP
- 2026江苏辖区农村商业银行泗阳农村商业银行校园招聘15人笔试备考试题及答案解析.docx VIP
- 种植施肥机械——栽植机械(水稻插秧机)课件讲解.pptx VIP
文档评论(0)