пример:
void main(void) {
int i = 10;
printf("%d", &i);
}
C/C++
Зачем нужен * и & при указании переменной в языке СИ
- Указатель – это переменная, которая хранит адрес объекта (переменной) в памяти.
- Над указателями допустимы две операции: & и *
- Операция & позволяет взять адрес объекта (переменной). ptr = &var;
- * является обратной операцией, которая позволяет получить доступ к значению объекта (переменной), которая расположена по адресу, который хранит указатель. Такая операция называется разыменованием. var = *ptr;
Это операции получения переменной по ее адресу и получения адреса переменной по ее имени. В частности, в printf тут передается адрес переменной с именем i.
В этом примере функция ввода scanf() реализует один из способов возврата более одного значения - а именно через указатель. Мы передаем в нее адрес переменной i, функция внутри себя создает указатель на эту переменную int * i_ptr = &i и после этого записывает по этому адресу то значение, что вы вводите.
(& в этом синтаксисе означает взятие адреса)
*i_ptr = value. (здесь * означает что менятся будет не сам указатель i_ptr, а значение ячейки памяти, на которое он указывает. )
Теперь в переменной i будет значение value. И после выхода из функции оно никуда не денется.
(& в этом синтаксисе означает взятие адреса)
*i_ptr = value. (здесь * означает что менятся будет не сам указатель i_ptr, а значение ячейки памяти, на которое он указывает. )
Теперь в переменной i будет значение value. И после выхода из функции оно никуда не денется.
>>Зачем нужен * и & при указании переменной в языке СИ
Это операторы. Операторы оперируют операндами.
Это операторы. Операторы оперируют операндами.
Это операции нужны для работы с указателями, это сложная тема, для понимания которого требуется некоторое время. Изучай тему Указателей и тогда этот вопрос полностью отпадет.
Похожие вопросы
- Правда ли, что язык Си - это язык мертвый и никому не нужный, а Си++ - это кривое костыльное ООП, которое скоро умрет?
- Решить задачу на языке СИ
- Написать код на языке си
- Написать программу на языке Си
- Помогите с решением задачи на языке СИ
- Си!!! БЕЗ УКАЗАТЕЛЕЙ, ЯЗЫК СИ
- Упорядочить элементы массива по возрастанию на языке Си
- Создать файл ABONENT.dat, содержащий записи следующей структуры: ФИО абонента; его номер телефона. на языке си++
- Помогите с задачей на языке СИ
- Написать код на языке Си
И ещё, какой смысл от *? От неё есть польза?