指针: 指向数组元素的指针
*就是数组指针,它指向的是数组名的地址,也就是数组的首地址.
* 我记指针的方法就是 还是拿p举例: 单独拿出来的p指的就是地址,而*p就是值.
*下面是用指针求数组元素的地址的例子:
int main() {
//定义长度为5的数组
int a[5]={1,3,5,7,9};
//定义一个指针存放整形数组第一个元素的地址
int *p = &a[0];
printf("第一个元素的地址是:%p\n",p);
p = a; //数组的第一个元素地址也存在了数组名中,所以a的地址赋到了指针P中(不用&)
printf("第一个元素的地址是:%p\n",p);
//求出第四个元素的地址
p = &a[4];
printf("第四个元素的地址是:%p\n",p);
return 0;
}
//*用指针求数组元素的值 :
int main() {
int a[5]={10,20,30,40,50};
//定义一个指针指向数组第1个元素
int *p = a;
printf("第1个元素的值是%d\n",*(p));
//通过指针指向下一个元素
printf("第2个元素的值是%d\n",*(p+1));
int *p1 = &a[4];
printf("第4个元素的值是%d\n",*(p1));
//通过数组名求出第3个元素的值
printf("第3个元素的值是%d\n",*(a+2)); //*(a)是0号位的元素的值 *(a+2)是2号位的元素的值
//求出p与p1之间元素个数的间隔 用long int
long num =p1-p;
printf("p1与p之间的间隔元素个数是%ld\n",num); |
|