私は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
}
だから私は、ポインタを使った間接的な呼び出しが直接的な呼び出しよりも利点があるのか、またはその逆なのか疑問に思っていますか?いくつかの長所/短所には、速度、操作を実行するために消費されるメモリの量(おそらく同じですが、私はそれをそこに出したかっただけです)、安全性(ダングリングポインタなど)、優れたプログラミング手法などが含まれ
ます。 GNU Cコンパイラ(gcc)を使用しても、returnステートメントなしでコンパイルされ、すべてが期待どおりに実行されます。おそらく、C ++コンパイラは、忘れた場合にreturnステートメントを自動的に挿入するためです。