数组与指针
数组与指针的关系
通过数组下标完成的操作都可以通过指针来实现。
1.定义:
int a[10];
a[i] //表示数组a的第i个元素
int *p;
p = &a[0]; //p指向数组a的第0个元素
x = *p; //p的值是数组元素a[0]的地址,将数组元素a[0]中的内容复制到变量x中
int *p = a; //数组名就是一个地址,指向数组第一个元素的地址
a[i]等价于*(a + i)
2.举例:
#include <stdio.h>
int main()
{
int a[5] = {1, 2, 3, 4, 5};
int *p, *q, *m, *n;
p = &a[0]; //将数组a的第一个元素地址赋给指针p
q = a; //数组名是数组第一个元素的地址
printf("%d %d\n", p, q);
printf("%d %d\n", *p, *q);
m = &a[1];
n = a + 1;
printf("%d %d\n", m, n);
printf("%d %d\n", *m, *n);
if((p+1) == &a[1])
printf("是");
else
printf("否");
return 0;
}
结果: