Можно ли заменить в программе все переменные на указатели на них - C (СИ)
Формулировка задачи:
а чем вообще отличается обращение к переменным напрямую от обращения через указатели
можно ли заменить в программе все переменные на указатели на них - если нет то до какой степени можно вообще применять указатели в коде
вообще насколько вообще оправдано делать, например, так
for (int i = 0, *iPtr = &i; i < 10; ++i)
{
//используем *iPtr вместо i
};Решение задачи: «Можно ли заменить в программе все переменные на указатели на них»
textual
Листинг программы
iint x;
void funktsia (int* p) {
(*p)++;
};
int main () {
x= 12;
funktsia (&x);
return 0;
}
Объяснение кода листинга программы
В данном коде:
- Объявлена переменная типа int x со значением 12.
- Вызывается функция funktsia, которая принимает в качестве аргумента указатель на int.
- Внутри функции funktsia происходит инкремент (*p)++.
- Результат функции не используется.
- Возвращается 0, что означает успешный конец работы программы. В данном коде переменная x заменяется на указатель на неё, но сама переменная не перемещается в памяти. В функции funktsia происходит инкремент через указатель на переменную x, что приводит к увеличению значения самой переменной x на единицу.