Вопросы с тегом «pointers»

Тип данных, который «указывает» на другое значение, хранящееся в памяти. Переменная-указатель содержит адрес памяти некоторой другой сущности (переменная или функция или другая сущность). Этот тег следует использовать для вопросов, связанных с использованием указателей, а не ссылок. Наиболее распространенными языками программирования, использующими указатели, являются C, C ++, Go и языки ассемблера. Используйте определенный языковой тег. Другими полезными тегами являются метод, функция, структура и т. Д., Описывающие использование указателя.

5
Правильный ли спецификатор формата для печати указателя или адреса?
Какой спецификатор формата мне следует использовать для вывода адреса переменной? Я запутался между нижеуказанным лотом. % u - целое число без знака % x - шестнадцатеричное значение % p - пустой указатель Какой формат будет оптимальным для печати адреса?

6
Почему адрес массива равен его значению в C?
В следующем фрагменте кода значения указателя и адреса указателя отличаются, как и ожидалось. Но значения массива и адреса не имеют! Как это может быть? Вывод my_array = 0022FF00 &my_array = 0022FF00 pointer_to_array = 0022FF00 &pointer_to_array = 0022FEFC #include <stdio.h> int main() { char my_array[100] = "some cool string"; printf("my_array = …
189 c  pointers  arrays 

13
С не так сложно: void (* (* f []) ()) ()
Я только сегодня увидел фотографию и думаю, что буду благодарен за объяснения. Итак, вот картинка: Я нашел это смущающим и задавался вопросом, практичны ли когда-либо такие коды. Я гуглил картинку и нашел другую картинку в этой записи Reddit, и вот эта картинка: Так что это «чтение по спирали» является чем-то …

13
Почему звездочка перед именем переменной, а не после типа?
Почему большинство программистов на C называют переменные так: int *myVariable; а не так: int* myVariable; Оба действительны. Мне кажется, что звездочка является частью типа, а не частью имени переменной. Кто-нибудь может объяснить эту логику?

2
Почему «это» указатель, а не ссылка?
Я читал ответы на этот вопрос плюсы и минусы C ++ и получил это сомнение, читая комментарии. Программисты часто путают, что «это» - указатель, а не ссылка. Другая путаница заключается в том, что «hello» не относится к типу std :: string, а вычисляется как char const * (указатель) (после преобразования …

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


29
Что людям трудно найти в C-указателях? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
173 c  pointers 


6
В Си, почему некоторые люди приводят указатель перед освобождением?
Я работаю над старой базой кода и почти каждый вызов free () использует приведение своего аргумента. Например, free((float *)velocity); free((float *)acceleration); free((char *)label); где каждый указатель имеет соответствующий (и соответствующий) тип. Я не вижу смысла делать это вообще. Это очень старый код, поэтому мне остается только подумать, что это за …
167 c  pointers  casting 

10
Должен ли я хранить целые объекты или указатели на объекты в контейнерах?
Проектирование новой системы с нуля. Я буду использовать STL для хранения списков и карт определенных долгоживущих объектов. Вопрос: Должен ли я гарантировать, что мои объекты имеют конструкторы копирования и хранят копии объектов в моих контейнерах STL, или лучше вообще управлять жизнью и областью действия и просто хранить указатели на эти …
162 c++  stl  pointers 

8
Почему библиотеки и фреймворки C ++ никогда не используют умные указатели?
Я прочитал в нескольких статьях, что сырые указатели почти никогда не должны использоваться. Вместо этого они всегда должны быть заключены в интеллектуальные указатели, будь то область видимости или общие указатели. Однако я заметил, что фреймворки, такие как Qt, wxWidgets и библиотеки, такие как Boost, никогда не возвращают и не ожидают …

8
Возврат массива с использованием C
Я относительно новичок в C, и мне нужна помощь с методами работы с массивами. Исходя из Java-программирования, я привык говорить int [] method(), чтобы возвращать массив. Тем не менее, я обнаружил, что с C вы должны использовать указатели для массивов, когда вы возвращаете их. Будучи новым программистом, я действительно не …
153 c  arrays  pointers  char 

18
Является ли хорошей практикой обнулять указатель после его удаления?
Я начну с того, что использую умные указатели, и вам никогда не придется об этом беспокоиться. Какие проблемы со следующим кодом? Foo * p = new Foo; // (use p) delete p; p = NULL; Это было вызвано ответом и комментариями к другому вопросу. Один комментарий от Нила Баттерворта вызвал …

12
Почему x [0]! = X [0] [0]! = X [0] [0] [0]?
Я немного изучаю C ++ и борюсь с указателями. Я понимаю, что я могу иметь 3 уровня указателей, объявив: int *(*x)[5]; так что *xэто указатель на массив из 5 элементов, на которые есть указатели int. Кроме того, я знаю , что x[0] = *(x+0);, x[1] = *(x+1)и так далее .... …
149 c++  c  arrays  pointers 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.