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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 学以致用表初衷 中级黑马   /  2016-1-11 16:42  /  2341 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当函数的参数是一个一维数组的时候。
在声明这个参数的时候 其实并不是创建一个数组。而是声明一个用来存储数组地址的指针变量。
如果函数的参数是一个数组。在声明参数的时候 都不要写一个数组,而是写一个存储数组的地址的指针变量。
指针数组
普通数组的声明: 数据类型 数组名[长度] 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++)这两种都是一样的。

4 个回复

倒序浏览
很好,清晰明了
回复 使用道具 举报
表示看不懂
回复 使用道具 举报
还是挺不错得
回复 使用道具 举报
不错,谢谢整理{:2_32:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马