Questions tagged «pointer-arithmetic»



3
这段代码如何在不使用sizeof()的情况下确定数组大小?
通过一些C面试问题,我找到了一个问题,指出“如何在不使用sizeof运算符的情况下在C中查找数组的大小?”,并提供以下解决方案。它有效,但是我不明白为什么。 #include <stdio.h> int main() { int a[] = {100, 200, 300, 400, 500}; int size = 0; size = *(&a + 1) - a; printf("%d\n", size); return 0; } 如预期的那样,它返回5。 编辑:人们指出了这个答案,但是语法确实有所不同,即索引方法 size = (&arr)[1] - arr; 因此,我认为这两个问题都是有效的,并且对问题的处理方法略有不同。谢谢大家的大力帮助和详尽的解释!

1
是否可以将零添加到空指针?
我知道对于空指针不允许使用指针算术。但是想象一下我有这样的事情: class MyArray { int *arrayBegin; // pointer to the first array item, NULL for an empty array unsigned arraySize; // size of the array, zero for an empty array public: int *begin() const { return arrayBegin; } int *end() const { return arrayBegin + arraySize; } // possible? (arrayBegin …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.