-3
A
回答
1
整件事得到一个指向数组中k32
nd元素后半部分的指针。
数组元素是long long
。 long long
的一半是long
。下半部分是通过将long long *
指针投射到long *
然后递增1找到的。这给了你一个指向下半部分的指针。
a64[k32] // the k32'nd element of the array type: long long
&a64[k32] // address of the k32'nd element type: long long *
(long *) &a64[k32] // that address re-cast to long * type: long *
((long *) &a64[k32] + 1) // the second half of the k32'nd item type: long *
这不是完全便携的。使用int32_t
和int64_t
而不是long
和long long
会更安全。它也假设一个特定的排列顺序。
+0
啊我明白了,天才!谢谢约翰! – thoughtMaze 2014-10-18 02:05:49
+0
k32没有设置,所以整件事都是未定义的行为。 “漫长的一半很长” - 不一定。 http://www.unix.org/version2/whatsnew/lp64_wp.html – 2014-10-18 05:11:06
相关问题
- 1. 数组长度与指针
- 2. 投指针的指针作为LPVOID *
- 3. 函数指针数组的长度
- 4. 指针数组影响错阵列
- 5. 投射指针
- 6. 2d数组错误 - 使指针指向整数而不投射
- 7. c,查找指针数组的长度
- 8. MongoDB投影到数组
- 9. 指针数组指针
- 10. C指针指针数组
- 11. 指针和指针数组指针
- 12. Fortran90:指针数组定义为指针数组(错误ifort 11.1?)
- 13. 使用不同指针类型作为参数来投射函数指针
- 14. 数组指针
- 15. 数组指针
- 16. 数组指针
- 17. 了解指针数组的指针作为函数的参数
- 18. 指向指针数组的指针是?
- 19. C++ - 指向数组的指针 - 指针
- 20. 匿名方法投射为指针
- 21. 传递指针数组的指针作为参数
- 22. 指向数组的指针数组,其中每个指针指向数组
- 23. 指针数组作为函数参数
- 24. 指向指针的指针和指向数组的指针
- 25. 不是BOOL的投影指针返回NO
- 26. 数组指针的数组?
- 27. 指针数组和指针指向一个数组在C++
- 28. 警告:使指针整数,未投
- 29. ether_ntoa指针投射问题
- 30. 右键投给void *指针
为什么问题被拒绝投票? – thoughtMaze 2014-10-18 21:52:29