C语言| 指针引用数组元素
C语言| 数组
指针与数组的关系:
1 指针与一维数组的关系;(重点,要掌握)
2 指针与二维数组的关系。(难点,用得少)
【用指针引用数组元素】
引用数组元素的方法:
1 用下标引用;
2 用指针引用。通过指向某个数组元素的指针变量来引用数组元素。
数组的类型要和指针变量的基类型相同!
【程序代码1】指针引用数组元素
定义一维数组a,有5个元素,
a[0]、a[1]、a[2]、a[3]、a[4]===是数组元素,也是变量名。
p = &a[0];
表示将a[0]的地址放到指针变量p中,也就是说指针变量p指向数组的第一个元素a[0]。
在C语言中规定,“数组名”是一个指针常量,表示数组第一个元素的起始地址。
所以 p = &a[0]; 和 p = a; 是等价语句,输出结果*p和*q都是一样的。
数组a 是 int型,占4字节。
数组a中每一个元素,都占4字节的内存单元,
每个字节都有一个地址,所以每个元素都有4个地址。
p = &a[0]; //把第一个元素的第一字节的地址,放到p中。
q = a; //表示把数组a的第一个元素的起始地址赋给指针变量q。
【数组的首地址】就是数组第一个元素的起始地址。
起始地址==第一个元素的第一字节的地址。
#include <stdio.h>
int main(void)
{
int a[] = {11, 22, 33, 44, 55}; //定义一维数组a
int *p = &a[0]; //指针p指向a[0],存放a[0]的地址。
int *q = a; //q指向a[0];
printf("*p = %d, *q = %d\n", *p, *q);
return 0;
}