文章目录
数组和指针
#include<stdio.h>
int main()
{
int arr[10] = { 1 ,2 ,3,4 ,5, 6, 7 ,8, 9,10 };
printf("%d\n", arr[2]); //------>3
printf("%d\n", 2[arr]); //------>3
return 0;
}
由上面的结果可以得到打印的结果都是相同的,这是因为 [ ]是一个操作符 ‘arr’和‘2’都是操作数,当他们顺序变化的时候结果都是相同的
#include<stdio.h>
int main()
{
int arr[10] = { 1 ,2 ,3,4 ,5, 6, 7 ,8, 9,10 };
int *p = arr;
printf("%d\n", *(p + 2)); //------>3
printf("%d\n", *(arr + 2); //------>3
return 0;
}
上面的运行的结果同样可以得到相同的结果,原因是因为p 和 arr 都是地址,从本质来说它们是相同的
#include<stdio.h>
int main()
{
int arr[10] = { 1 ,2 ,3,4 ,5, 6, 7 ,8, 9,10 };
int *p = arr;
printf("%d\n", p[2]); //------>3
printf("%d\n", arr[2]); //------>3
printf("%d\n",2[p]);//---------->3
printf("%d\n",*(arr + 2));//---->3
return 0;
}
易得上面的结果