C语言中static char *P指针char *P指针,有什么本质的不同?

如题所述

    前者是定义一个静态的字符形指针,后者是一个字符形指针:

    static,若声明一个静态的局部变量的。若希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。这时就应该指定局部变量为静态局部变量。
    若声明的是一个静态的全局变量,则会禁止其它文件访问该全部变量,进行对该全局变量的保护,跟extern相对的。

    char *p只是一个普通的指针声明。

例如:

char** p1=NULL;char* p2[5];p1=p2;  // OKp2=p1; // errorp1=&p2[0];//OK   

温馨提示:答案为网友推荐,仅供参考
相似回答