今天我浏览了一些源代码(这是一个解释软件框架使用的示例文件),发现了很多这样的代码:
int* array = new int[10]; // or malloc, who cares. Please, no language wars. This is applicable to both languages
for ( int* ptr = &(array[0]); ptr <= &(array[9]); ptr++ )
{
...
}
所以基本上,他们已经完成了“获取位于地址的对象的地址array + x
”。
通常我会说,这完全是愚蠢的,因为写作array + 0
或array + 9
直接做同样的事情。我什至总是将这样的代码重写为 size_t for 循环,但这是风格问题。
但是过度使用它让我开始思考:我是否遗漏了一些明显的东西或隐藏在语言黑暗角落的东西?
对于任何想要查看原始源代码的人,所有它都是令人讨厌goto
的 s ,malloc
当然还有这个指针的东西,请随时在线查看。