Сегодня я не буду знакомить вас с какими-либо дополнительными функциями. Прежде чем перейти к следующему уроку о вызове по значению и вызове по ссылке, необходимо изучить основную концепцию указателей. Он используется в расширенной функции функции, которая вызывается по ссылке. Указатель является одним из самых сложных понятий в программировании на Си. Поэтому я рекомендую вам внимательно прочитать этот урок. В этом уроке я только дам вам общий обзор указателей.
Какие указатели в C?
В первом уроке я рассказал вам, как хранятся значения в C. Я сказал вам, что у каждой переменной есть адрес. Таким образом, указатель является переменной, которая хранит адрес другой переменной. Помните, здесь очень важен адрес. Указатели могут хранить только адреса другой переменной.
Указатели в C - источник изображения |
int x = 10, y = 20;
printf («% u% u», & x, & y);
printf («% u% u», & x, & y);
Здесь% u - спецификатор формата. Он обозначает неподписанный, поэтому он будет отображать только положительные значения.
Вы получите вывод вышеуказанной программы, как показано ниже.
605893 605897
605893 605897
Ну, это адреса переменных х и у. Здесь & является «адресом» оператора. Используется для переноса компилятора по адресу переменных. Адрес любой переменной не может быть отрицательным. По этой причине мы использовали спецификатор формата% u для вывода адреса переменных на экране.
значение по адресу (*) Оператор
Это второй оператор, используемый для указателей. Он используется для доступа к значению, присутствующему на каком-либо адресе. И он используется для объявления указателя.
Примечание. Значения указателя и целочисленные значения совершенно разные. Мы не можем хранить любой адрес в целочисленной переменной. Для хранения адреса любой переменной мы должны объявить одну переменную как указатель.
Объявление и инициализация указателей
int x = 10;
int * y; // Объявление переменной-указателя
y = & x; // Сохраняем адрес переменной x в переменной указателя y
int * y; // Объявление переменной-указателя
y = & x; // Сохраняем адрес переменной x в переменной указателя y
Использование указателей
int a = 3;
int * b;
б = & а;
printf («Значение по адресу% u -% d», b, * b);
int * b;
б = & а;
printf («Значение по адресу% u -% d», b, * b);
Вывод приведенного выше кода будет примерно таким, как приведено ниже.
Значение по адресу 605764 составляет 3
Значение по адресу 605764 составляет 3
объяснение
- В первом утверждении я объявил целочисленную переменную i и сохранил в ней значение 3.
- Во втором утверждении я объявил переменную b как указатель с помощью оператора (*). Помните, что он может хранить только адрес переменной целочисленного типа.
- После этого я сохранил адрес переменной a в переменной указателя b.
- Теперь в функции printf () я напечатал адрес внутри указателя b и значение по адресу внутри переменной указателя b.
Примечание: в нашей программе указатель переменной b содержит адрес целочисленной переменной a. Чтобы сохранить адрес типа float, char или любой другой переменной типа, мы должны объявить указатель этого типа.
Чтобы лучше понять концепцию указателей, я бы порекомендовал вам запустить приведенную ниже программу дома и попытаться выяснить результат самостоятельно.
Спрогнозируйте выходные данные вышеприведенной программы и запустите ее, чтобы проверить результаты. Комментарий ниже, если вы обнаружите какие-либо трудности в понимании этой программы.
Выход
Как я уже говорил ранее, концепция указателя является обязательной, прежде чем изучать тему по ссылке. Я надеюсь, что до сих пор вы должны иметь хорошее представление об основных понятиях указателя. Поэтому в следующем уроке я дам вам урок о вызове по значению и вызове по ссылочной функции функций.
Комментариев нет:
Отправить комментарий