黑马程序员技术交流社区
标题:
关于指针变量的问题
[打印本页]
作者:
Silent_memory
时间:
2014-3-13 22:18
标题:
关于指针变量的问题
本帖最后由 Silent_memory 于 2014-3-25 22:58 编辑
假如我定义一个指针变量 int *p; int a = 10; 那么下面的两个表达式是否是一样效果,还是有一个是错误的。
A: *p = a;
B:: p = &a;
作者:
z82454642
时间:
2014-3-13 22:48
这两个表达式效果是一样的
作者:
lixiangzhou
时间:
2014-3-13 23:10
两个表达式的值都是正确的
A: *p = a; // 这里表示把变量a的值赋值给指针p所指向的变量
B:: p = &a; // 这里表示把变量a的地址赋值给指针p
作者:
菜鸟de无奈
时间:
2014-3-14 11:07
两个表达式的语法都是正确的。
A的表达式需要根据前面代码才能判断是否有意义。
作者:
keycola
时间:
2014-3-15 21:03
假如我定义一个指针变量 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;
这就是没有意义的了
不知道你是否明白了没
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2