int *p; *p=1;为什么不能这么用,只能这么用,int *p; p=1;求教?

2025-03-11 03:51:22
推荐回答(3个)
回答1:

int *p; *p = 1 为什么不能用? int *p;定义了一个指针p,然而p并没有指向任何地址,所以当使用*p时是没有任何地址空间对应的,所以 *p=1 就会导致,不知道把这个1赋值给哪个地址空间了。

int *p; p = 1; 为什么能用? int *p; 定义了一个指针p, p = 1; 意思是将一个内存地址为1的地址赋值给p,所以这个是可行的。但是这个操作是不安全的。

回答2:

你这样用也是不规范的。int *p 是声明了一个 整型指针 ,但没有指向任何地址。所以*p = 1会报错。
但是 p = 1 是让 把 1 当作地址赋给了 p 。也就是 p 是一个无法移动的指针。

回答3:

*p是个指针啊 怎么能给指针赋值呢?只能给指针所指的东西赋值