Этот код демонстрирует правильный и неправильный способ изменения числа.
Функция get_number_A
НЕ будет вносить значимых изменений в свой параметр, поскольку C использует «pass-by-copy»для его параметров.
Функция get_number_B
внесет существенное изменение в свой параметр, поскольку передан указатель на переменную.
void get_number_A(int x)
{
x = 5; // This change will NOT happen outside of this function.
}
void get_number_B(int* p)
{
*p = 7; // This change will happen outside of this function.
}
int main(void)
{
int number = 0;
get_number_A(number);
printf("A.) The number is: %d; it was NOT modified.\n", number);
get_number_B(&number);
printf("B.) The number is: %d; it was SUCCESSFULLY modified.\n", number);
return 0;
}
Просмотреть этот код в IDEOne