Запитання з тегом «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
C не так складно: void (* (* f []) ()) ()
Я щойно побачив фотографію сьогодні і думаю, що буду вдячний за пояснення. Отже ось малюнок: Я вважав це заплутаним і цікавився, чи такі коди колись практичні. Я гуглив картинку і знайшов ще одну картинку у цій редакції reddit, і ось ця картинка: Тож це "читання спірально" щось дійсне? Це як …

13
Чому зірочка перед назвою змінної, а не після типу?
Чому більшість програмістів на C називають такі змінні: int *myVariable; а не так: int* myVariable; Обидва дійсні. Мені здається, що зірочка - це частина типу, а не частина назви змінної. Хтось може пояснити цю логіку?

2
Чому "це" вказівник, а не посилання?
Я читав відповіді на це питання «за» і «проти» C ++ і мав це сумніви під час читання коментарів. програмісти часто вважають заплутаним, що "це" є вказівником, але не посиланням. чергова плутанина, чому "привіт" не типу std :: string, але оцінює до char const * (покажчик) (після перетворення масиву в …


8
Арифметика вказівника для недійсного вказівника в С
Коли покажчик до певного типу (скажімо int, char, float, ..) збільшується, його значення збільшується на розмір цього типу даних. Якщо voidвказівник, який вказує на дані про розмір x, збільшується, як це зробити, щоб вказувати xбайти вперед? Як компілятор знає додати xзначення покажчика?

29
Що людям важко вказувати на покажчики С? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
173 c  pointers 


6
Чому чому деякі люди кидають покажчик перед тим, як звільнити його?
Я працюю над старою базою коду і майже кожен виклик free () використовує роль аргументу. Наприклад, free((float *)velocity); free((float *)acceleration); free((char *)label); де кожен вказівник має відповідний (і відповідний) тип. Я не бачу сенсу робити це взагалі. Це дуже старий код, тому мені залишається цікаво, чи це K&R річ. Якщо …
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
Чи є гарною практикою NULL покажчик після його видалення?
Почну, кажу, використовуйте розумні вказівники, і вам ніколи про це не доведеться хвилюватися. Які проблеми з наведеним нижче кодом? Foo * p = new Foo; // (use p) delete p; p = NULL; Це було викликано відповіддю та коментарями до іншого питання. Один коментар Ніла Баттерворта приніс кілька результатів: Встановлення …

12
Чому x [0]! = X [0] [0]! = X [0] [0] [0]?
Я вивчаю трохи С ++ і борюся з покажчиками. Я розумію, що я можу мати 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.