黑马程序员技术交流社区

标题: 关于指针变量赋值的疑问? [打印本页]

作者: holfioo    时间: 2015-5-10 15:01
标题: 关于指针变量赋值的疑问?
本帖最后由 holfioo 于 2015-5-12 22:32 编辑

提问以下程序:
  1. int main()
  2. {
  3.     int a = 10 ;
  4.     //int *p = a ;  为啥不能这么写。  ①
  5.     int *p = &a ; //一定要写成这样  ②
  6.     return 0;
  7. }
复制代码
*p 不就是指向 a的值么...
①这样写可以么?

作者: wangzhewjl    时间: 2015-5-10 15:33
定义变量的时候那个*号没有作用,p存的是地址,int *p = &a;相当于 先定义一个int *p; 然后再给p赋值p = &a;
作者: 逆流瞅瞅    时间: 2015-5-10 16:02
int *p = &a ; 表示 int *p;  p=&a;  理解int *当成一种指针数据类型,给p赋值为&a。
作者: ios专用    时间: 2015-5-10 20:28
就是把*p=&a这一步省略了,
作者: 15578797612    时间: 2015-5-11 13:17
int *p = &a 的意思是定义了一个指针p并指向a的地址,如果换成int *p = a 那就成了定义指针p指向a,但是a是int变量不是地址
作者: 飞翔的猪    时间: 2015-5-11 14:10
int a[10]; int *p=a; 这样可以,因为int *p 指向的是a数组的首地址,int a;就不可以了,a是变量
作者: ⒈苆都s.兲憶    时间: 2015-5-11 18:32
指针变量P指的是是一个地址,它是用来存储地址的,变量a不是地址需要加一个运算符&,这是我的理解
作者: holfioo    时间: 2015-5-11 19:21
手机端改不了标题。谢谢大家。现在基本明白这个赋值的意思啦。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2