The function get of an ifstream reads the next character and stores it in the argument you pass to the function. Example program:
#include <iostream>     
#include <fstream>      
int main () {
  std::ifstream is("input.txt");     // open file
  char c;
  while (is.get(c))          // loop getting single characters
    std::cout << c;
  is.close();                // close file
  return 0;
 }
This works great but I am puzzled by how c can be changed by the function get as it is not passed by its pointer. I was told, some time ago, that modifying a variable within a function cannot change its value outside the function. And that's the whole purpose of pointers, right -- manipulating an object created outside the function. So how can c be changed here?
I guess there is something obvious that I don't understand here?
 
     
    