Вопросы с тегом «pointer-arithmetic»

1622
Почему с массивами, почему [5] == 5 [a]?

Как указывает Джоэл в подкасте № 34 «Переполнение стека» на языке программирования C (он же K & R), в C упоминается это свойство массивов:a[5] == 5[a] Джоэл говорит, что это из-за арифметики указателей, но я все еще не понимаю. Почемуa[5] == 5[a]...

177
Арифметика указателя для пустого указателя в C

Когда указатель к определенному типу (скажем int, char, float, ..) увеличивается, его значение увеличивается на размер этого типа данных. Если voidуказатель, который указывает на данные размера x, увеличивается, как он может указывать xвперед байты? Как компилятор знает, как добавить xзначение...

134
Как этот кусок кода определяет размер массива без использования sizeof ()?

Проходя через несколько вопросов на собеседовании с C, я нашел вопрос о том, как найти размер массива в C без использования оператора sizeof, со следующим решением. Это работает, но я не могу понять, почему. #include <stdio.h> int main() { int a[] = {100, 200, 300, 400, 500}; int size = 0;...

9
Разрешено ли добавлять ноль к нулевому указателю?

Я знаю, что арифметика указателей запрещена для нулевых указателей. Но представьте, у меня есть что-то вроде этого: 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()...