解释一下C语言中的引用和指针?

#include int main(){ int a=2,b=4; int *p; printf("add of a=%d

",&b); p=&a; // p points to variable a printf("a value is =%d

",a); // prints a value printf("*p value is =%d

",*p); //prints a value printf("p value is =%d

",p); //prints the address of a p=&b; //p points to variable b printf("b value is =%d

",b); // prints b value printf("*p value is =%d

",*p); //prints b value printf("p value is =%d

",p); //prints add of b }