Believe me, if you try to write serious code (i.e. a program of non-trivial size that includes a non-trivial number of functions), that uses global variables, when it comes time for someone else to fix a bug or add a feature to it, they will want to string you up by your thumbs, douse you with some sugary soft drink, and set a bucket full of fire ants loose on you. I speak from experience here.
Learn about pass-by-value and pass-by-reference. If you find yourself passing a lot of related data back and forth between functions, that's a sign that you should think carefully about your overall program structure, and consider using classes (objects) or structs to bundle things together.