《C语言》课程教学课件(PPT讲稿)第16讲 数组的指针和字符串的指针

第16讲数组的指针和字符串的指针 、数组的指针 1数组与地址 2数组元素的访问 、字符串指针 1.字符串指针的定义 2字符指针与字符数组的区别 、指针作为函数参数 1数组名作为函数参数 2字符指针作为函数参数
一、数组的指针 1.数组与地址 2.数组元素的访问 二、字符串指针 1.字符串指针的定义 2.字符指针与字符数组的区别 三、指针作为函数参数 1.数组名作为函数参数 2.字符指针作为函数参数 第16讲 数组的指针和字符串的指针

、数组的指针 >C语言规定: 数组名代表数组(元素)的首地址,即第 一个元素的地址。 若有:inta10, D=8 则:a与&a|0是等价的 指针变量p为数组的指针 数组的指针:数组的起始地址,即数组元素的 首地址。 >数组元素的指针:数组元素的地址
➢C语言规定: 数组名代表数组(元素)的首地址,即第 一个元素的地址。 若有:int a[10], *p=a; 则: a 与 &a[0] 是等价的 指针变量 p 为数组的指针 ➢数组的指针:数组的起始地址,即数组元素的 首地址。 ➢数组元素的指针:数组元素的地址。 一、数组的指针

1数组与地址 对数组的首地址加上偏移量x就可以得到其它 元素的地址。 例:&a[表示数组元素a的地址 等价于a+1、p+1 &ax表示数组元素ax的地址 等价于a+x、p+x
1.数组与地址 ➢对数组的首地址加上偏移量x就可以得到其它 元素的地址。 例: &a[1] 表示数组元素a[1]的地址 等价于 a+1、 p+1 &a[x] 表示数组元素a[x]的地址 等价于 a+x、 p+x

2数组元素的访问 下标法 用ail的形式存取数组元素。 地址法: 用*(a+i)的形式存取数组元素。 >指针法: 用指针变量p指向数组的首地址,然后通 过移动指针存取数组元素。 如p=a,p+i
2.数组元素的访问 ➢下标法: 用 a[i] 的形式存取数组元素。 ➢地址法: 用 *(a+i)的形式存取数组元素。 ➢指针法: 用指针变量p指向数组的首地址,然后通 过移动指针存取数组元素。 如 p=a, p+i

例a用下标法存取数组元素 main( f int a[10l, i; for(i=0;i<10;i++) scanf(%od,&al; for(i=0;i<10;i++) printf(od", aiD printf( in")
例a 用下标法存取数组元素 main( ) { int a[10], i; for ( i=0; i<10; i++ ) scanf("%d", &a[i]); for ( i=0; i<10; i++ ) printf("%d", a[i]); printf("\n"); }

例b用地址法存取数组元素 main() f int a[10l for(i=0;i<10;i++) scanf(%od", a+i); for(i=0;i<10;i++ printf(%d",*(a+D); printf( in");
例b 用地址法存取数组元素 main( ) { int a[10], i; for ( i=0; i<10; i++ ) scanf("%d", a+i ); for ( i=0; i<10; i++ ) printf("%d", *(a+i)); printf("\n"); }

数组元素的访问举例 例c用指针法存取数组元素。(即通过指针指 向数组的首地址,然后通过移动指针存取数组 元素。) main( maino fint a[10,"p, i; f int a[10, "p for(i=0,p=a;i<10;i++) for(p=a; p<a+10; p++) scanf(%od",p+i); scanf(%d",p); for(i=0,p=a;i<10;i++) for(p=a; p<a+10; p++) printf("%od", (p+i)) printf("%d",* p); printf("n; printf( n);
数组元素的访问举例 例c 用指针法存取数组元素。(即通过指针指 向数组的首地址,然后通过移动指针存取数组 元素。) main( ) { int a[10], *p, i; for (i=0, p=a; i<10; i++) scanf("%d", p+i); for (i=0, p=a; i<10; i++) printf("%d", *(p+i)); printf("\n"); } main( ) { int a[10], *p; for ( p=a; p<a+10; p++) scanf("%d", p); for ( p=a; p<a+10; p++) printf("%d", *p); printf("\n"); }

例c说明 2000 2001 p=& a 2002 2 等价于p 2003 p+十 2004 p++ 4 2005 2006 6 2007 2008 8 2009
例c 说明 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 02468 p = & a *p++ 0462 * p p++ 等价于 8

数组元素的访问小结: int i, a 10 *D=a9 表现形式 义 &aro] a p 维数组首地址 &ai]a+ip+i一维数组下标为的元素地址 a[o] p|一维数组下标为0的元素的值 a[i]*(a+i)*(P+)一维数组下标为i的元素的值
数组元素的访问小结: int i,a[10],*p=a; 表 现 形 式 含 义 &a[0] a p 一维数组首地址 &a[ i ] a+i p+i 一维数组下标为i 的元素地址 a[0] *a *p 一维数组下标为0 的元素的值 a[ i ] *(a+i) *(p+i) 一维数组下标为i 的元素的值

注意: 数组名是一个常量,不允许重新赋值。 指针变量是一个变量,可以重新赋值。 >p+i和a均表示数组元素a的地址,均指向 ali (p+i和*(a+均表示p+和a+i所指对象的内容, 即a团i] >p++:等价于*p++)。其作用:先得到,再 使p=p+1
注意: ➢ 数组名是一个常量,不允许重新赋值。 指针变量是一个变量,可以重新赋值。 ➢ p+i和a+i均表示数组元素a[i]的地址,均指向 a[i]。 *(p+i)和*(a+i)均表示p+i和a+i所指对象的内容, 即a[i]。 ➢ *p++:等价于*(p++)。其作用:先得到*p,再 使p=p+1
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程教学课件(PPT讲稿)第15讲 指针定义和引用续.ppt
- 《C语言》课程教学课件(PPT讲稿)第15讲 指针定义和引用.ppt
- 《C语言》课程教学课件(PPT讲稿)第14讲 变量的存储类别续.ppt
- 《C语言》课程教学课件(PPT讲稿)第14讲 变量的存储类别.ppt
- 《C语言》课程教学课件(PPT讲稿)第13讲 函数的调用和变量的作用域.ppt
- 《C语言》课程教学课件(PPT讲稿)第12讲 函数的定义和嵌套调用.ppt
- 《C语言》课程教学课件(PPT讲稿)第10讲 结构体.ppt
- 《C语言》课程教学资源(作业习题)习题讲解.doc
- 《C语言》课程教学资源(作业习题)C语言基础1(二).doc
- 《C语言》课程教学资源(作业习题)C语言基础1(一).doc
- 《C++语言》课程教学资源(PPT课件讲稿)第十四章 模板.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十三章 输入和输出.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十二章(12-2)几个特殊运算符的重载.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十一章(11-3)静态成员.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十章(10-4)虚基类.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十章 顺序表.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第九章(9-3)拷贝初始化构造函数.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第八章 类和对象.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第七章 计算用户输入的一个正整数各位之和.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第六章(6-4)指针和动态内存分配.pps
- 《C语言》课程教学课件(PPT讲稿)第16讲 数组的指针和字符串的指针续.ppt
- 《C语言》课程教学课件(PPT讲稿)第17讲 改错.ppt
- 《C语言》课程教学课件(PPT讲稿)第17讲 复习续.ppt
- 《C语言》课程教学课件(PPT讲稿)第18讲 习题.ppt
- 《C语言》课程教学课件(PPT讲稿)第2讲 基本数据类型.ppt
- 《C语言》课程教学课件(PPT讲稿)第三讲 运算符和表达式.ppt
- 《C语言》课程教学课件(PPT讲稿)第4讲 顺序结构和常用语句.ppt
- 《C语言》课程教学课件(PPT讲稿)第5讲 选择结构.ppt
- 《C语言》课程教学课件(PPT讲稿)第6讲 三种循环结构.ppt
- 《C语言》课程教学课件(PPT讲稿)第7讲 循环的嵌套.ppt
- 《C语言》课程教学课件(PPT讲稿)第8讲 一维数组和二维数组.ppt
- 《C语言》课程教学课件(PPT讲稿)第9讲 字符数组.ppt
- 《C语言》课程教学课件(PPT讲稿)第十一讲 函数的定义及调用.ppt
- 《C语言》课程教学课件(PPT讲稿)第十二讲 函数的调用和变量的作用域.ppt
- 《大学计算机基础教程》课程教学资源:省高校一级(NDOWS版)01-6-16等级考试选择题(A).doc
- 《大学计算机基础教程》课程教学资源:02-01-05一级考试选择题(A).doc
- 《大学计算机基础教程》课程教学资源:02-01-05一级考试选择题(B).doc
- 《大学计算机基础教程》课程教学资源:02-01-05一级考试选择题(C).doc
- 《大学计算机基础教程》课程教学资源:02-01-05一级考试选择题(D).doc
- 《大学计算机基础教程》课程教学资源:02-01-05一级考试选择题(E).doc