В технологических программах есть концепции и предметы, которые обычно пугают студентов, некоторые из основных примеров — предметы, связанные с объектно-ориентированным программированием и исчислением, другой пример — некоторые более базовые абстрактные понятия. такие функции, как указатели, в основном в C, теме этой статьи.
В отличие от нас, компьютеры знают определенную информацию не по «метке» или «имени», а по адресу, по которому эти данные расположены в памяти. Мы можем думать о памяти как о наборе «ячеек», которые содержат несколько битов, хранящих 0 или 1, и каждая ячейка связана с определенным адресом, по которому она хранит некоторую информацию, так что программы, выполняемые машиной, могут получить доступ к этим данным и манипулировать ими. это. .
Принимая во внимание, что для того, чтобы программа могла использовать данные, ей необходимо знать их адрес в памяти, мы можем представить концепцию указателя. Указатель — это переменная, которая «указывает» на некоторые другие данные; это как если бы это было пространство в памяти, предназначенное для хранения адреса другой переменной или информации, чтобы ею можно было манипулировать.
Но теперь возникает вопрос: какая польза от указателя? Указатель позволяет выполнять некоторые более сложные операции с использованием памяти, такие как динамическое выделение с помощью Malloc или создание более сложных структур данных и т. д. Более того, есть некоторые детали, которые ученикам поначалу не так легко заметить, например, тот факт, что имя вектора является указателем. Правильно, вектор — это не что иное, как «фиксированный указатель», указывающий на определенную позицию в памяти, и индекс которого мы используем для манипулирования в соответствии с необходимостью.
Другое использование — манипулирование данными по ссылке, например: передача массива в качестве параметра другой функции, позволяющая изменять исходный массив вместо переданного значения или объекта, являющегося просто копией, что, например, происходит в Javascript, где нет там понятия указателя (по крайней мере не явно), например:
#includeint vet [5] ={10,20,3,4}; void somadez(int * ref){ for(int i=0;i Еще одно не столь очевидное использование указателей, на этот раз для объектно-ориентированных языков, где мы можем, например, создавать динамические объекты и облегчать работу с наследованием и полиморфизмом.
Ниже приведен пример с C:#includeusing namespace std; class Animal{ public: virtual void som(); }; class Cachorro : public Animal{ public: void som(){ cout som(); //neste caso podemos usar o ponteiro para acessar métodos e atributos de uma classe derivada. return 0; }
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3