Во многих языках с ароматом C и некоторых более старых языках, таких как Fortran, можно использовать Указатели.
Как человек, который действительно программировал только на базовом, javascript и ActionScript, можете ли вы объяснить мне, что такое указатель и для чего он наиболее полезен?
Спасибо!



Указатель - это переменная, которая содержит адрес другой переменной. Это позволяет вам косвенно ссылаться на другую переменную. Например, в C:
// x is an integer variable
int x = 5;
// xpointer is a variable that references (points to) integer variables
int *xpointer;
// We store the address (& operator) of x into xpointer.
xpointer = &x;
// We use the dereferencing operator (*) to say that we want to work with
// the variable that xpointer references
*xpointer = 7;
if (5 == x) {
// Not true
} else if (7 == x) {
// True since we used xpointer to modify x
}
Эта википедия статья предоставит вам подробную информацию о том, что такое указатель:
In computer science, a pointer is a programming language data type whose value refers directly to (or "points to") another value stored elsewhere in the computer memory using its address. Obtaining or requesting the value to which a pointer refers is called dereferencing the pointer. A pointer is a simple implementation of the general reference data type (although it is quite different from the facility referred to as a reference in C++). Pointers to data improve performance for repetitive operations such as traversing string and tree structures, and pointers to functions are used for binding methods in Object-oriented programming and run-time linking to dynamic link libraries (DLLs).
Как уже упоминалось, указатель - это переменная, содержащая адрес другой переменной.
В основном он используется при создании новых объектов (во время выполнения).
В SO было несколько дискуссий по этой теме. Вы можете найти информацию по теме по ссылкам ниже. Есть несколько других соответствующих обсуждений SO по этому вопросу, но я думаю, что они были наиболее актуальными. Найдите «указатели [C++]» в окне поиска (или «указатели [c]»), и вы также получите дополнительную информацию.
В C++ я не могу понять указатели и классы
В чем разница между современными «справочниками» и традиционными «указателями»?
Указатели не так сложны, как кажется. Как уже говорили другие, это переменные, которые содержат адрес какой-то другой переменной. Предположим, я хочу указать вам дорогу к моему дому. Я бы не дал вам фотографию своего дома или его макет в масштабе; Я просто дам вам адрес. Из этого вы можете сделать все, что вам нужно.
Точно так же во многих языках проводится различие между передачей по значению и передачей по ссылке. По сути, это означает, что я буду передавать объект целиком каждый раз, когда мне нужно на него ссылаться? Или я просто дам его адрес, чтобы другие могли понять, что им нужно?
Большинство современных языков скрывают эту сложность, выясняя, когда указатели полезны, и оптимизируя это для вас. Однако, если вы знаете, что делаете, ручное управление указателем все же может быть полезно в некоторых ситуациях.
Это не совсем так. Например, это может быть метод.