If C does not support passing a variable by reference, why does this work?
#include void f(int *j) { (*j)++; } int main() { int i = 20;
p is a pointer variable. Its value is the address of i. When you call f, you pass the value of p, which is the address of i.