一、指向一维数组的指针,通过该指针有两种方法访问该数组中的数据:
2.可以通过指针下标的方法,依次访问该指针指向内存地址中的数据,例如:
二、指向二维数组的指针,通过该指针有两种方法访问该数组中的数据:
1.可以改变指针的指向,依次访问该指针指向内存地址中的数据,例如:
2.可以通过指针下标的方法,依次访问该指针指向内存地址中的数据,例如:
1.可以改变指针的指向,依次访问该指针指向内存地址中的数据,例如:
#include <stdio.h>
#include <malloc.h>
int main()
{
int array[5] = {1,2,3,4,5};
int i = 0;
int *p = array;
for(i = 0;i < 5; i ++)
{
printf("%d ",*p);
p ++;
}
return 1;
}
2.可以通过指针下标的方法,依次访问该指针指向内存地址中的数据,例如:
#include <stdio.h>
#include <malloc.h>
int main()
{
int array[5] = {1,2,3,4,5};
int i = 0;
int *p = array;
for(i = 0;i < 5; i ++)
{
printf("%d ",p[i]);
}
return 1;
}
二、指向二维数组的指针,通过该指针有两种方法访问该数组中的数据:
1.可以改变指针的指向,依次访问该指针指向内存地址中的数据,例如:
#include <stdio.h>
/*
Description:
p存放的是第一行{1,2}数据的起始地址
p+1存放的是第二行{3,4}数据的起始地址
p[0]存放的是第一行{1,2}数据的起始地址
p[1]存放的是第二行{3,4}数据的起始地址
p[0]+1存放的是数据{2}的地址
*/
#include <malloc.h>
int main()
{
int array[2][2] = {{1,2},{3,4}};
int i = 0, j = 0;
int (*p)[2] = array;
for(i = 0;i < 2; i ++)
{
for(j = 0;j <2; j++)
{
printf("%d ",*(p[i]+j));
}
printf("\n");
}
return 1;
}
2.可以通过指针下标的方法,依次访问该指针指向内存地址中的数据,例如:
#include <stdio.h>
/*
Description:
p存放的是第一行{1,2}数据的起始地址
p+1存放的是第二行{3,4}数据的起始地址
p[0]存放的是第一行{1,2}数据的起始地址
p[1]存放的是第二行{3,4}数据的起始地址
p[0]+1存放的是数据{2}的地址
*/
#include <malloc.h>
int main()
{
int array[2][2] = {{1,2},{3,4}};
int i = 0, j = 0;
int (*p)[2] = array;
for(i = 0;i < 2; i ++)
{
for(j = 0;j <2; j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
return 1;
}