title: Are pointers considered a method of calling by reference in C?
body: <p>In my University's C programming class, the professor and subsequent book written by her uses the term <strong>call or pass by reference</strong> when referring to <strong>pointers</strong> in C.</p>
  
  <p>An example of what is considered a 'call by reference function' by my professor:</p>
  
  <pre><code>int sum(int *a, int *b);
  </code></pre>
  
  <p>An example of what is considered a 'call by value function' by my professor:</p>
  
  <pre><code>int sum(int a, int b);
  </code></pre>
  
  <p>I've <a href="https://stackoverflow.com/questions/1919718/pass-by-reference-in-c">read</a> C doesn't support call by reference. To my understanding, <strong>pointers pass by value</strong>.</p>
  
  <p>Basically, is it <strong>incorrect</strong> to say pointers are C's way of passing by reference? Would it be <strong>more correct</strong> to say you cannot pass by reference in C but can use pointers as an alternative?</p>
  
  <hr>
  
  <p><strong>Update 11/11/15</strong></p>
  
  <p>From the way my question originated, I believe a debate of terminology has stemmed and in fact I'm seeing two specific distinctions.</p>
  
  <ul>
  <li>pass-by-reference (the term used mainly today): The <strong>specific</strong> term as used in languages like C++</li>
  <li>pass-by-reference (the term used by my professor as a paradigm to explain pointers): The <strong>general</strong> term used before languages like C++ were developed and thus before the term was rewritten</li>
  </ul>
  
  <p>After reading @Haris' updated answer it makes sense why this isn't so black and white.</p>