指针的第二天
//-----------------------------数组指针
#warning 怎么理解数组指针?
这是一个指针! 指向数组第一个元素地址的指针
注意:
1)数组名a不代表整个数组,只代表数组首元素的地址。
“p=a;”的作用是“把a数组的首元素的地址赋给指针变量p”,而不是“把数组a各元素的值赋给 p”
int a[3] = {1,2,3};
int *p = &a[0]; &a[0] == a ---> 数组首地址
&a[0]+1 = ? &a[1]
a+1 = ? &a[1]
p+1 = ? &a[1]
#warning 怎么使用?
如果指针变量p已指向数组中的一个元素,
则p+1指向同一数组中的下一个元素,
//p-1指向同一数组中的上一个元素。
结论: 引用一个数组元素,可用下面两种方法:
(1)下标法,如a[i]形式
(2)指针法,如*(a+i)或*(p+i)
(3)a是常量(a++错误),p是变量(p++正确)
有一个整型数组a,有10个元素,要求输出数组中的全部元素
解题思路:
引用数组中各元素的值有3种方法:
(1)下标法;
(2)通过数组名计算数组元素地址,找出元素的值;
(3)指针
//-----------逆序数组
3 7 9 11
i j
关键:判断条件 i<j则进行交换
//-----------------------------一维指针数组
什么是指针数组?
是一个数组! 这个数组里面的数组元素都是地址
类型说明符 *数组名[数组长度]
int *pa[3] = {a[0],a[1]};
*pa == *(&pa[0]) == pa[0] == &a
|
|