就是在C语言中可不可以有"static int* p ;"这种方式定义指针变量。
如果可以效果是不是跟正常的静态变量"static int a;"一样?
可以这么定义
static int a;的意思是,a这个变量是静态的(下次调用这个函数,a还是之前的值)
static int *p;的意思是,p这个指针是静态的(下次调用这个函数,p还是指向同一个地址,至于地址本身是否有效,里面的内容是不是变化,就不一定了)
从效果上来说"static int* p ;"和"static int a;"效果确实是一样的,他们两个变量的作用域和生存期都是一样的,没有区别。
只不过一个是正常变量,一个是指针变量而已,static int* p是指这个指针变量是静态的,如果没有重新赋值该指针,这个指针变量永远
不会变,但是指针指向的地址的内容还是可以变的,,使用方法和正常的指针变量一样使用
同意楼上的观点,区别就是一个是变量,一个是指针,a 和 p 的值不变。
指针好像没这么用过都用const修饰吧?