Cには参照がありますか?つまり、C++のように:
void foo(int &i)
いいえ、そうではありません。 ポインタがありますが、まったく同じではありません。
特に、Cのすべての引数は、C++のように参照渡しが利用できるのではなく、値によって渡されます。もちろん、ポインタを介してsimulateの参照渡しを並べ替えることができます。
void foo(int *x)
{
*x = 10;
}
...
int y = 0;
foo(&y); // Pass the pointer by value
// The value of y is now 10
ポインタと参照の違いの詳細については、 this SO question 。(そして、私はCでもC++でもないので、私に聞かないでください。プログラマー:)
ポインタは他のオブジェクトを参照するため、概念的にはCには参照があります。
構文的には、CにはC++のように参照がありません。