Static int *, a general local variable, will be released by the system at the end of its life cycle, while static variables will not be released, that is, it will exist from its declaration to the end of the whole program. So the difference between a static pointer and a general pointer is that the life cycle is different. General pointers are general variables and static pointers are static variables.
As for the explanation upstairs, it is wrong, int * const p;; In this way, the pointer of life cannot be changed after the specified position, but this is not a static pointer. It's a const pointer.