数组名:数组名字是数组首元素地址,但它是一个常量
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
printf("%p\n",&arr[0]);
printf("%p\n",arr); //数组名是数组的首地址,是一个常量 这两种打印形式 都能打印出arr[0]的地址 数组本身就是地址
return 0;
}
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int* p;
p=arr; //通过指针间接操作数组
printf("%d\n",arr[0]);
printf("%d\n",p[0]); //两种打印结果都是1
return 0;
}
//指针的加减法运算
//指针计算不是简单的整数相加 如果是一个int* 其+1的结果是增加一个int的大小
//如果是char* 其+1的结果是增加一个char大小
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int* p;
p=arr;
printf("%d\n",arr[1]); //打印出1
printf("%d\n",*(p+1)); //指针+1指向数组的下一个元素 打印出2
return 0;
}
#include<stdio.h>
int main()
{ int i;
int arr[]={1,2,3,4,5,6,7,8,9,10};
int*p;
p=arr;
for(i=0;i<10;i++)
{
printf("%d\n",p[i]);
//printf("%d\n",*(p+1)); 指针加上偏移量 打印出结果与上面一行一样
}
return 0;
}