第13章 指针的使用.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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、

文档评论(0)

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

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

1亿VIP精品文档

相关文档