一、指针和数组的关系
一维数组名是一个指针常量,指向数组第一个元素的地址,且不能被改变,故int a[5];a[i]等价于*(a+i)
#include <stdio.h>
int main()
{
char a[] = "Have a fun day!";
char *p = a;
printf("字符数组a:%s\n", p);
printf("字符数组a:%s\n", a);
return 0;
}
二、指针的运算
#include <stdio.h>
int main()
{
char a[] = "Have a fun day!";
char *p = a;
printf("p->%c , p+1->%c , p+2->%c \n", *p, *(p + 1), *(p + 2)); // 指向数组的下一个元素
printf("a->%c , a+1->%c , a+2->%c \n", *a, *(a + 1), *(a + 2)); // 可以看到数组名同样指向第一个元素的地址
return 0;
}