黑马程序员技术交流社区

标题: 4种指针的遍历方法 [打印本页]

作者: 学以致用表初衷    时间: 2016-1-11 16:42
标题: 4种指针的遍历方法
当函数的参数是一个一维数组的时候。
在声明这个参数的时候 其实并不是创建一个数组。而是声明一个用来存储数组地址的指针变量。
如果函数的参数是一个数组。在声明参数的时候 都不要写一个数组,而是写一个存储数组的地址的指针变量。
指针数组
普通数组的声明: 数据类型 数组名[长度] int arr[3]
指针数组的声明:  数据类型 数组名[长度] int *arr[3]
还有4种指针的遍历方法。
第一种遍历方式


             int arr[4]={10,30,50,80};
             int *p1=arr;
            
             int len=sizeof(arr)/sizeof(arr[0]);
             for(int i=0;i<len;i++)
             {
            
             printf("%d",*(p1+i));}
第二种遍历方式
             int arr[4]={10,30,50,80};
             int len=sizeof(arr)/sizeof(arr[0]);
             for(int i=0;i<len;i++)
             { printf("%d\n",*(arr+i))}
第三种遍历方法
int arr[4]={10,30,50,80};
int len=sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<len;i++)
{ printf("%d\n",*(arr++))
}
第四种遍历方法 使用下标来遍历。
我个人感觉还是蛮好记的。你只要记住 数组的类型是一个地址。想要遍历一个数组 要将地址转化为值
要么就是从指针入手 一种就是将指针地址加1 就是加int 的4个字节 就是*(p+1)
要是从地址入手  就是*(arr+i)  或者*(arr++)这两种都是一样的。

作者: yangqi    时间: 2016-1-11 17:39
很好,清晰明了
作者: zhuyapeng    时间: 2016-1-12 21:15
表示看不懂
作者: 明阳天夏    时间: 2016-1-12 23:07
还是挺不错得
作者: sunshine429    时间: 2016-1-12 23:14
不错,谢谢整理{:2_32:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2