There are mechanisms in place to switch the version of gcc (and other tools) you get with using their name (gcc), See the update-alternatives man page, but there are recommendations that changing the system-wide gcc default is a bad thing. The existing programs have been successfully compiled and tested with the default compiler, and while it would be hoped that a newer compiler would still produce acceptable results, there are no guarantees. Things that are deprecated in a compiler may be removed in the next version. New bugs may be introduced. There's a reason a distribution uses a particular compiler version -- the programs they provide all work with that version, and some probably do not work with a later version.
For you own use, choose the compiler you want (gcc-8 in the below example) without altering the system-wide defaults by adding the gcc ( and ar, nm, ranlib) links to the desired version into your own ~/bin directory:
ln -s ~/bin/gcc -> /usr/bin/gcc-8
ln -s ~/bin/ar -> /usr/bin/gcc-ar-8
ln -s ~/bin/ranlib -> /usr/bin/gcc-ranlib-8
ln -s ~/bin/nm -> /usr/bin/gcc-nm-8
If your ~/bin directory does not exist, make it:
mkdir ~/bin
Your ~/bin will be picked up and added to the beginning of your PATH environment variable, so that the gcc command will be found there and used, instead of the system default in /usr/bin.
This technique may be applied to applications which need specific compiler versions (CUDA for example). Links to the selected compiler version may be put into the application bin directory, and that location may be added first to your PATH (in .profile for bash shell users).
gcc
firstsudo apt-get remove gcc*
then install the newer version – blade19899 Sep 27 '12 at 10:10