|
发表于 2021-10-18 18:13:56
|
显示全部楼层
我也是这个星期学完的指针,大牛们看看我解释的有没有问题
#include<stdio.h>
int main(void)
{ //a[0],a[1],a[2],a[3],a[4],a[5]
int a[] = { 1, 2, 3, 4, 5, 6 };//定义一个数组a,系统自动分配a下标[0]到下标[5]的6个int数据地址。
int* ptr = &a[5];//创建一个int型变量名位ptr的指针(ptr定义为指针后,只能存放地址)
//a[5]把它理解成为一个变量,名字叫a[5]。prt指针只接受地址,&就是取a[5]这个变量的地址。
printf("%d,%d\n", *(a + 1), *(ptr - 1));//*(a+1),a是数组的首地址,也就是a[0]的地址,+1就是a[0]的地址加1个int的长度到a[1]
//*(ptr-1),ptr中的地址就是a[5],-1是减去了一个int的地址那就是a[4]的地址
//*在这边是取出括号中指针指向的目标的地址内的值。
printf("%d,%d,%d,%d,%d,%d", a[0], a[1], a[2], a[3], a[4], a[5]);
return 0;
}
|
|