Я продолжаю читать, что, в C, с помощью адресной арифметики с указателями обычно быстрее, чем индексирование для доступа к массиву. Действительно ли это верно даже с современными (предположительно оптимизирующими), компиляторами? Если так, это все еще...
& amp; array [0] и & amp; array [2] индивидуально печатают правильные значения, которые являются адресом массива [0] и массива [2] соответственно. Однако, когда я вычитаю два, вместо 8, которые печатаются ...
Я готовлю некоторые слайды к вводному классу C, и я пытаюсь представить хорошие примеры (и мотивация) для использования адресной арифметики с указателями по индексированию массива. Много примеров я вижу в...
Я смущен этим кодом: (http://www.joelonsoftware.com/articles/CollegeAdvice.html), в то время как (*s ++ = *t ++); Каков порядок выполнения? *s = *t сначала сделан и затем каждый из них...
У кого-либо есть какие-либо хорошие статьи или объяснения (блоги, примеры) для адресной арифметики с указателями? Полагайте, что аудитория является набором программистов Java, учащихся C и C++.
Как указывает Джоэл в подкасте № 34 «Переполнение стека» на языке программирования C (он же K & amp; R), здесь упоминается это свойство массивов в C: a [5] == 5 [a] Джоэл говорит, что это потому, что указателя ...
Когда указатель на определенный тип (скажем, int, char, float, ..) увеличивается, его значение увеличивается на размер этого типа данных. Если указатель void, указывающий на данные размера x, увеличивается, ...
Предположим, у нас есть: char * p; int x; Как недавно обсуждалось в другом вопросе, арифметика, включая операции сравнения недопустимых указателей, может привести к неожиданному поведению в gcc linux x86-64 C ++. ...
Я читал книгу K & R по C и обнаружил, что арифметика указателей в C позволяет получить доступ к одному элементу за концом массива. Я знаю, что C позволяет делать почти все с памятью, но я просто ...
Я заметил это предупреждение от Clang: предупреждение: выполнение арифметики с указателем на нулевом указателе имеет неопределенное поведение [-Wnull-pointer-arithmetic] В деталях, именно этот код вызывает это предупреждение: ...
stddef.h Linux определяет offsetof () как: #define offsetof (ТИП, УЧАСТНИК) ((size_t) и ((ВВОДЯТ *) 0)-> УЧАСТНИК), тогда как статья Wikipedia о offsetof () (http://en.wikipedia.org/wiki/Offsetof)...
В его 1 ноября 2005 столбец C++, Herb Sutter пишет... интервал [17]; интервал* endA = + 17; для (интервал* ptr = A; ptr <endA; ptr + = 5) {//...} [O] n некоторые архитектуры ЦП, включая текущий...
Я могу создать массив строк в C с помощью указателей char * array [] = {"string1", "string2", "string3"}; Когда я хочу напечатать любую строку, я должен указать индекс элемента. char * array [] = {"string1", ...
Во многих поисковых функциях C (bsearch приходит на ум), если результат найден, возвращается указатель на пятно в массиве. Как я могу преобразовать этот указатель на индекс в массиве, который был...
Согласно проекту C ++ expr.add, когда вы вычитаете указатели одинаковых типов, но не принадлежите одному и тому же массиву, поведение не определено (выделение мое): когда два выражения указателя P ...
Я немного читал в Pointer Arithmetic и наткнулся на 2 вещи, которые я не мог понять и не знал: использовать адрес _выражение -адрес _выражение, а также адрес _выражение >...
Почему разница между двумя адресами неверна?
http://codepad.org/NGDqFWjJ #include
основной ()
{инт i = 10, j = 20; интервал *p = &i; интервал *q = &j; int c = p - q;...
Я портирую приложение на Visual Studio 2012 (на C ++ 11), которая в настоящее время компилируется и корректно работает на gcc на нескольких платформах. Когда я попытался запустить его, случилось что-то странное (по крайней мере для меня). ...
کاملاً رایج است که اگر به عنصری از یک آرایه به عنوان arr دسترسی پیدا کنید [ من] در C است که شما همچنین می توانید به عنصر به عنوان i [arr] دسترسی پیدا کنید ، زیرا اینها فقط در * (arr + i) خلاصه می شوند و جمع ...
Я просто пытался используйте указатель void на целочисленный массив, я попытался проверить, могу ли я распечатать массив обратно, вернув его обратно в int. Но это дает мне некоторую случайную ценность. Можете ли вы сказать мне, где я ...
Если я скажу, int a [] = {1, 2, 3, 4, 5};
int * p = a; Теперь, если я напишу p + 1 + 2, он будет таким же, как ((p + 1) + 2)? Любая стандартная ссылка, которая доказывает, что это неверно?
Я видел, что в реализации OpenGL VBO используется следующий макрос: #define BUFFER_OFFSET(i) ((char *)NULL + (i))
//...
glNormalPointer(GL_FLOAT, 32, BUFFER_OFFSET(x)); Не могли бы вы предоставить ...
Дано определение структуры, которое содержит одну переменную типа double и три переменные типа int (всего 4 переменные), если p является указателем на это struct со значением 0x1000, какое значение имеет p ++? Это не домашнее задание ...
Мой вопрос очень простой. Допустим, у нас есть: char * ptr = (char *) malloc (sizeof (char) * SIZE);
ptr + = РАЗМЕР / 2;
бесплатно (птр); Что происходит, когда мы освобождаем указатель? Это неопределенная операция? Это бесплатно ...
Интересно, могут ли пользователи backbone.js мне помочь? Как лучше всего кодировать сообщения об ошибках из приложения rails при использовании с backbone.js, например, тех сообщений об ошибках, которые когда-то были определены ...