A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 哒哒萌 中级黑马   /  2015-7-29 22:30  /  598 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

指针的第二天


//-----------------------------数组指针



#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


2 个回复

倒序浏览
总结的不错
回复 使用道具 举报
最后2行看不懂啊  搞点注释 解释一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马