1.数组名是数组首元素地址
2.指针类型变量+1 等同于内存地址+sizeof(int)
3.
#include<stdio.h>
main()
{
int arr[5]={1,2,3,4,5};
int* p;
p=arr;
for(int i=0;i<5;i++)
{
printf("%d ",*arr);
}
printf("\n");
for(int i=0;i<5;i++)
{
printf("%d ",*(arr+i));
}
printf("\n");
for(int i=0;i<5;i++)
{
printf("%d ",p[i]);
}
printf("\n");
for(int i=0;i<5;i++)
{
printf("%d ",*(p+i));
}
printf("\n");
printf("%p\n",arr);
printf("%p",p);
printf("\n");
p++;
printf("%p\n",arr);
printf("%p",p);
printf("\n");
int step=p-arr;
printf("%d\n",step);
}
p和arr之间的区别
1.p是变量, arr是常量。
2.p是指针,4个字节大小;arr是数组,4*数组元素个字节大小。
3.数组在函数中定义时使用的格式必须为 BubbleSort (int arr[ ],int len)
4.数组作为函数参数会退化为指针,丢失数组的精度(也就是个数)