如题上,通常的思想是遍历一遍啦,这里有个比较有意思的方法(程序员面试宝典上有相应的题 四版,p78)
利用了指向数组的指针来完成:
- // 得到数组的最后一个数 - 使用指向数组的指针来完成
- #include <stdio.h>
- int main()
- {
- printf(" 得到数组的最后一个数的趣味实现 \n");
- const int MAXN = 8;
- int a[MAXN] = {1, 2, 4, 8, 16, 32, 64, 128};
- int *p = (int*)(&a + 1); //a是一个地址,&a是双指针,可以理解为一个二维数组的地址,这里加1便是数组整体加一行,p指向第九个元素,这里指向下一个元素是没问题的,若是取其值就会有问题了。
- printf("%d\n", *(p - 1)); //为128
- return 0;
- }