黑马程序员技术交流社区

标题: 4种方法遍历数组. [打印本页]

作者: wx_byrDDXsc    时间: 2016-3-27 21:23
标题: 4种方法遍历数组.
/*

有1个数组:
int arr[] = {10,20,30,40,50,60,70,80,90,100};
使用四种方式遍历方式将这个数组遍历出来.

分析: 1> 传统方法.
      2> *(p1+i)
      3> *(arr+i)
      4> *(p1++)
*/

#include <stdio.h>
void way1(int* arr,int len);
void way2(int* arr,int len,int* p1);
void way3(int* arr,int len);
void way4(int* arr,int len,int* p1);
int main()
{
    int arr[] = {10,20,30,40,50,60,70,80,90,100};
    int len = sizeof(arr)/sizeof(arr[0]);
    way1(arr, len);
    way2(arr, len, arr);
    way3(arr, len);
    way4(arr, len, arr);
    return 0;
}
//1> 传统方法.
void way1(int* arr,int len)
{
    for (int i = 0; i < len; i++)
    {
        printf("%d\t",arr);
    }
    printf("\n");
}
//2> *(p1+i)
void way2(int* arr,int len,int* p1)
{
    for (int i = 0; i < len; i++)
    {
        printf("%d\t",*(p1+i));
    }
    printf("\n");
}
//3> *(arr+i)
void way3(int* arr,int len)
{
    for (int i = 0; i < len; i++)
    {
        printf("%d\t",*(arr+i));
    }
    printf("\n");
}
//4> *(p1++)
void way4(int* arr,int len,int* p1)
{
    for (int i = 0; i < len; i++)
    {
        printf("%d\t",*(p1++));
    }
    printf("\n");
}



作者: 又欠又欠    时间: 2016-3-27 21:36
感谢感谢感谢
作者: Zhangqi27    时间: 2016-3-27 22:38
学习到了 谢谢
作者: 爱尘iPhone    时间: 2016-3-27 23:01
不粗不错不错
作者: wx_byrDDXsc    时间: 2016-3-28 19:41
爱尘iPhone 发表于 2016-3-27 23:01
不粗不错不错


作者: wx_byrDDXsc    时间: 2016-3-28 20:10
Zhangqi27 发表于 2016-3-27 22:38
学习到了 谢谢


作者: dazayn    时间: 2016-3-30 08:14
不                       错
作者: 堕落天使    时间: 2016-3-30 10:13
受教了,棒棒的!
作者: tdwydan1    时间: 2016-3-30 19:14
传统方法里写的只是首地址,你应该写成第i个元素的地址
作者: z276698840    时间: 2016-3-31 12:55

作者: 854785751    时间: 2016-4-1 18:59
受教了!!!!
作者: zhaodecang    时间: 2016-4-1 19:06
我想问一下  VC++6.0中prinitf()函数的执行顺序跟什么有关系呢?
作者: zxinsunshine    时间: 2016-4-4 23:11
很好,分别用指针和数组来进行元素遍历




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