- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 指针的使用
本章主要内容 地址与指针的概念 指针变量的定义与使用 一维数组与指针的关系 指针的应用 问题的提出 变量的三个要素: 地址与指针的概念 在计算机中,把内存区划分为一个一个的存储单元,每个单元为一个字节(8位),它们都有一个编号,这个编号就是内存地址。 地址与指针的概念 地址与指针的概念 指针:在C语言中,将变量的地址形象化地称为指针。 指针变量:专门存放变量地址的变量 地址与指针的概念 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 直接访问:通过变量本身对变量进行存取的方式。 间接访问:通过指针变量实现对变量的访问方式。 间接访问的过程是:由指针变量得到变量的地址,根据该地址找到变量的存储区,再对该存储区的内容进行存取,从而实现了对变量的间接访问 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 二维数组与指针 二维数组与指针 二维数组与指针 二维数组与指针 二维数组与指针 【例2】有一整形数组a[3][4],利用指针输出各元素的值。 //chap7ex1.c #include stdio.h #define M 3 #define N 4 int main() { int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12}; int i,j,*q=a[0][0]; for(i=0;iM;i++) { for(j=0;jN;j++) printf(%-5d,*(q+i*N+j)); printf(\n); } return 0; } 二维数组与指针 二维数组与指针 【例3】有一整形数组a[3][4],利用指针输出各元素的值。 //chap7ex2.c #include stdio.h #define M 3 #define N 4 int main() { int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12},(*q)[N]; int i,j; q=a; for(i=0;iM;i++) { for(j=0;jN;j++) printf(%-5d,*(*(q+i)+j)); printf(\n); } return 0; } 二维数组与指针 六、指向指针的指针变量 如果指针的值是另一指针的地址,则该指针是指针的指针。定义为: 类型说明 **指针变量名; #include stdio.h int main() { int x = 3, *p1=x; /* p1指向x */ int **p2; /* 定义指针的指针 */ p2 = p1; /* p2指向变量p1 */ printf(%d, **p2); /* 输出x的值 */ return 0; } 二维数组与指针 七、指针数组 如果数组的每个元素都是指针,则该数组为指针数组。 定义为: 类型说明 *数组名[数组长度] #include stdio.h int main() { int i, x[5] = {1, 2, 3, 4, 5}; int *p[5]; /* p为指针数组*/ for(i=0; i5; i++) p[i] = x[i]; /* 为数组p的各元素赋值 */ for(i=0; i5; i++) printf(%5d, *p[i]); /* 输出数组p的每个元素所指向的数值 */ printf(\n); } 指针应用举例 指针应用举例 指针应用举例 指针应用举例 指针应用举例 内存的动态分配 C语言所提供的有关函数有3个,即malloc函数、calloc函数和free函数。 1、malloc函数 malloc函数的使用方法是: 指针=(类型说明 *)malloc(数据长度) 其中,“(类型说明 *)”是强制类型转换,以保证与指针的类型一致。“数据长度”为一正整数,表示数据所占内存单元个数——字节数,常用sizeof()运算符来获取。malloc函数的函数值为成功分配的内存单元的地址,若分配内存失败则返回空指针NULL。 例如, int *p; p = (int *)malloc( sizeof(int) ); *p=3; 内存的动态分配 2、
您可能关注的文档
- 湖南省平江县徐安贞资料大全.pdf
- 兰字中学教师信息技术培训方案.doc
- 生物七年级期末综合测试题.doc
- 弧长与扇形面积教学反思.doc
- 电功、电能表、纯电阻电路、电学实验.doc
- 《农家小院——画图工具的使用》工作案例.doc
- 苏教版数学五上期中复习.ppt
- 第2讲 可持续发展的内涵及协调人地关系的主要途径.ppt
- CRM解释.docx
- 奥竞三年51.doc
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
文档评论(0)