int *p; *p = 50 为什么不能用? int p;定义了一个指针p,然而p并没有指向任何地址,所以当使用p时是没有任何地址空间对应的,所以 *p=50 就会导致,不知道把这个50赋值给哪个地址空间了。
int *p; p = 50; 为什么能用? int *p; 定义了一个指针p, p = 50; 意思是将一个内存地址为50的地址赋值给p,所以这个是可行的。但是这个操作是不安全的。
p是指针,要先初始化,先让它指向一个地址然后才能存东西
你可以搜一下野指针的危害,你定义的int *p就是一个野指针