Macros, local variables & persistent local variables

Simple question: How exactly do the local & persistent local variables work in Macros? Do they reset each time the macro is called? Why are there only persistent variables for Booleans and Integers?