volatile keyword in C / C++

What is the meaning of a volatile keyword in C & C++ language? How can the variables be modified from outside the scope of current program?