假如我定义一个指针变量 int *p; int a = 10; 那么下面的两个表达式是否是一样效果,还是有一个是错误的。
A: *p = a;
B:: p = &a;
这个问题,先回答, *p = a ,这个p没有指向,也就是野指针,所以会出现错误,再就是如果 p 指针有指向的地址空间
如 int a = 10 , b =12;
int *p = &b;
A, *p = a;
B, p = &a;
这两个也是有区别的,尽管 *p 都等于 10 ,但是 A 选项,则是让 b 也等于了 10
所以这两者是有区别的
但如果是
int a = 10 ;
int *p = &a;
*p = a;
这就是没有意义的了
不知道你是否明白了没
|