《C语言课件二级》第7章 指针.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 指针  本章主要内容 地址与指针的概念 指针变量的定义与使用 一维数组与指针的关系 指针的应用 问题的提出 变量的三个要素: 地址与指针的概念 在计算机中,把内存区划分为一个一个的存储单元,每个单元为一个字节(8位),它们都有一个编号,这个编号就是内存地址。如下图所示: 地址与指针的概念 地址与指针的概念 指针:在C语言中,将变量的地址形象化地称为指针。 指针变量:专门存放指针(变量地址)的变量 地址与指针的概念 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 直接访问:通过变量本身对变量进行存取的方式。 间接访问:通过指针变量实现对变量的访问方式。 间接访问的过程是: 由指针变量得到变量的地址,根据该地址找到变量的存储区,再对该存储区的内容进行存取,从而实现了对变量的间接访问 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 变量与指针 指针作函数参数 指针作函数参数 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 一维数组与指针 指向数组的指针作函数参数 指针作函数参数 指针作函数参数 指针作函数参数 二维数组与指针 二维数组与指针 二维数组与指针 二维数组与指针 二维数组与指针 【例2】有一整形数组a[3][4],利用指针输出各元素的值。 #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; } 二维数组与指针 二维数组与指针 //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的值 */ } 二维数组与指针 七、指针数组 如果数组的每个元素都是指针,则该数组为指针数组。 定义为: 类型说明 *数组名[数组长度] #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); } 字符指针 字符指针是指向字符串的指针,定义为: char *指针; 可以用字符数组为指针赋初值 char a[ ]=Welcome to UPC.; char *p=a; 也可以用字符串常量的地址为指针赋初值 char *p=Hello; 由于p为指针变量,指针指向是可以改变的 char *p=Hello, *q=p; p=world; 如果x为字符数组,则令x=abc是错误的 字符指针 字符数组与字符指针变量比较 : 1、char str[20]=“china”; 与char *p=“china”; 2、str由若干元素组成,每个元素放一个字符;而p中存放字符串首地址 3、char str[

文档评论(0)

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

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

1亿VIP精品文档

相关文档