Я новичок в C, и я читал о том, как указатели "указывают" на адрес другой переменной. Поэтому я попробовал косвенный вызов и прямой вызов и получил те же результаты (что и предсказывал любой разработчик C / C ++). Вот что я сделал:
int cost;
int *cost_ptr;
int main()
{
cost_ptr = &cost; //assign pointer to cost
cost = 100; //intialize cost with a value
printf("\nDirect Access: %d", cost);
cost = 0; //reset the value
*cost_ptr = 100;
printf("\nIndirect Access: %d", *cost_ptr);
//some code here
return 0; //1
}
Поэтому мне интересно, имеет ли косвенный вызов с указателями какие-либо преимущества по сравнению с прямым вызовом или наоборот? Некоторые преимущества / недостатки могут включать скорость, объем памяти, потребляемой при выполнении операции (скорее всего, такой же, но Я просто хотел это показать), безопасность (например, висячие указатели), хорошая практика программирования и т. Д.
1 Забавно, я использую компилятор GNU C (gcc), и он все еще компилируется без оператора return, и все идет так, как ожидалось. Возможно, потому что компилятор C ++ автоматически вставит оператор return, если вы забудете.