第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"); }