Does C have references? i.e. as in C++ :

void foo(int &i) 

2 Answers

No, it doesn't. It has pointers, but they're not quite the same thing.

In particular, all arguments in C are passed by value, rather than pass-by-reference being available as in C++. Of course, you can sort of simulate pass-by-reference via pointers:

void foo(int *x) { *x = 10; } ... int y = 0; foo(&y); // Pass the pointer by value // The value of y is now 10 

For more details about the differences between pointers and references, see this SO question. (And please don't ask me, as I'm not a C or C++ programmer :)

3

Conceptually, C has references, since pointers reference other objects.

Syntactically, C does not have references as C++ does.

6

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy