#include<stdio.h>
int main()
{
int temp[5] = {1,2,3,4,5};
int *p = temp;)——>,数组是连续的,所以只需要直到第一个地址
int i;
for(i = 0;i<5;i++)
{
printf("%d\n",*(p+i));
}
return 0;
}
是一个数组,每个数组元素存放一个指针变量
int *p1[5]; 取值运算符”*“和下标运算符“[ ]”(优先值高)同时作用于p1
数组指针
int (*p2)[5]; p2先被定义为指针,指向数组
初始化:
#include<stdio.h>
int main()
{
int temp[5] = {1,2,3,4,5};
int (*p2)[5] = &temp;
int i;
for(i = 0;i<5;i++)
{
printf("%d\n",*(*p2+i));
}
return 0;
}
与二维数组
array,指向包含五个数组元素的指针
*(array+1)表示的是指向第二行子数组的第一个元素的地址
一级二级指针的区别
这几个二维数组的值都是相同的