C语言 指针与一维数组,指针遍历一维数组的多种方法

来源:互联网 发布:网络在线记账 编辑:程序博客网 时间:2024/05/16 04:48

指针与一维数组:

#include <stdio.h>

void test1()

{

    //利用指针来修改数组元素

    int a[2];

    int *p;

    p = &a[0]; //    p = a; 等效

    *p = 10;

    printf("%d\n",a[0]);

}

void test2()

{

    //遍历数组元素

    int a[3] = {1,2,3};

    for (int i=0; i<3; i++)

    {

        printf("a[%d]的值为%d\n",i,a[i]);

    }

}

void test3()

{

    //利用数组来遍历数组元素

    int a[3]={1,2,3};

    int *p;

    p = a;

    

    for (int i=0; i<3; i++)

    {

        //注意:我们这里的p+1是加的对应数据类型的一个单元

        //遍历完,p的值没有改变

        printf("a[%d]的值为%d\n",i,*(p+i));

    }

}

void test4()

{

    //利用数组来遍历数组元素

    int a[3]={1,2,3};

    int *p = a;

    for (int i=0; i<3; i++)

    {

        //注意:我们这里的p+1是加的对应数据类型的一个单元

        //遍历完,p的值改变了,指向了a[2] p=p+1

        printf("a[%d]的值为%d\n",i,*(p++));

    }

}

void test5()

{

    //利用数组来遍历数组元素

    int a[3]={1,2,3};

    int *p;

    p = a;

    for (int i=0; i<3; i++)

    {

        //注意:我们这里的p+1是加的对应数据类型的一个单元

        //a为数组的首地址,用a+i也行, 但是a++不行,因为a是常量,数组的首地址是不能修改的

        printf("a[%d]的值为%d\n",i,*(a+i));

    }

}

void test6()

{

    //利用数组来遍历数组元素

    int a[3]={1,2,3};

    int *p = a;

     for (int i=0; i<3; i++,p++)

    {

        //注意:我们这里的p+1是加的对应数据类型的一个单元

        printf("a[%d]的值为%d\n",i,*p);

    }

} 

void test7()

{

    //利用数组来遍历数组元素

    int a[3]={1,2,3};

    int *p = a;

    for (int i=0; p<a+3; i++,p++)

    {

        //注意:我们这里的p+1是加的对应数据类型的一个单元

        printf("a[%d]的值为%d\n",i,*p);

    }

}


int main(int argc, const char * argv[])

{  

  test1();

test2();

test3();

test4();

test5();

test6();

test7();

    return 0;

}

0 0
原创粉丝点击