c语言中指针与数组

#include <stdio.h>
#include <stdlib.h>
void main()
{
    int data[20]={0};
    int *p=data;
    int i;
    for(i=0;i<5;i++)
    {
        data[i]=i+1;
        printf("第%d个元素的值为%d   ",i+1,data[i]);
        printf("第%d个元素的地址为%p   ",i+1,&data[i]);
        printf("第%d个元素的值为%d   ",i+1,*p);
        printf("第%d个元素的地址为%p\n",i+1,p);
        (*p)++;
        printf("第%d个元素的值为%d   ",i+1,*p);
        p++;
        printf("第%d个元素的地址为%p\n",i+1,p);
        printf("\n");
    }
}

输出结果解析:
*p为p这个指针所指向地址的内容,即data数据中的元素值
p则为指向数组的指针

方法二:

void main()
{
    int i;
    int array[20]={0};

    for(i=0;i<20;i++)
    {
        array[i]=i;
        int *ptr;//定义一个整形的指针
        int *ptr2;定义一个整形的指针
        *ptr=array[i];//将第i个元素的值赋值给ptr,*ptr即为第i个元素的值
        ptr2=&array[i];//将第i个元素的地址复制给ptr2
        printf("值为:%d    ",array[i]);
        printf("array的地址为:%p    ",&array[i]);
        printf("ptr的地址为:%p    ",ptr2);
        printf("ptr的值为:%d\n",*ptr);

    }
}

posted @ 2023-03-05 00:42  南大仙  阅读(43)  评论(0)    收藏  举报