前者是定义一个静态的字符形指针,后者是一个字符形指针:
static,若声明一个静态的局部变量的。若希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。这时就应该指定局部变量为静态局部变量。
若声明的是一个静态的全局变量,则会禁止其它文件访问该全部变量,进行对该全局变量的保护,跟extern相对的。
char *p只是一个普通的指针声明。
char** p1=NULL;char* p2[5];p1=p2; // OKp2=p1; // errorp1=&p2[0];//OK