文章目录
问题描述
- 问题描述
- 程序设计
- 实现代码
使用指向数组的指针,得到数组的最后一个数。
程序设计对于int m = 1;
:
*m
由于m不是指针变量,所以不存在。&m
是指向m的地址。*&m
是指地址为&m
的内存中存放的值,也就是m的值。
C语言的数组地址为其首元地址,每个元素地址都是其首地址。 比如一个长度为4的int数组,首元地址600000,第二个元素是600004,第三个元素是600008,最后一个元素是600012,数组地址范围600000 ~ 600015,长16字节。 &a+1
表示了在数组首地址加上数组总长,上例则为600016。 同理,如果是&a+2
则表示600032,&+3
则为600048,……
int *p = (int*)(&a + 1);
上面的语句定义了一个int类型的指针,指向的位置是&a+1
,上例的600016。 “相当于”是一个新的数组,此时600016成了首元