当前位置: 代码迷 >> C语言 >> 最简单的指针赋值问题
  详细解决方案

最简单的指针赋值问题

热度:33   发布时间:2006-04-25 17:48:00.0
先谢谢9楼的兄弟,不过还是不是很清楚


这样看我程序的结果的话就是把4赋给了p指向的元素,而不是给了p所指的地址
我知道你的意思
你的意思是说最好不要这样写
这样写不是很好,对吧
----------------解决方案--------------------------------------------------------
以下是引用gaga在2006-4-25 1:27:00的发言:
*p=&a;我听课的时候有这个说是把a 的地址给p,就是p指向a;

*p=4;这又说是把4赋给p 所指元素,

*P=?到底是把?赋给p所指的值还是赋给予p啊

定义指针p的时候用 int *p;
给这个指针附值(即让它指向一个变量的地址),比如用p=&a //a为一个变量,&a为它的地址,p=&a就是让指针p指向a的地址
*p就代表a了
对于用指针访问变量,比如运用指针要打出一个数
int *p,a=2;
p=&a;
printf("%d",*p); //它等价于 printf("%d",a)

比较潦草,别介意


----------------解决方案--------------------------------------------------------

定义指针 int *p=&a; //让它指向变量a的地址
用两句话代替上面为: int *p,a;
p=&a; //即把a的地址赋给p
此时, *p就等价于a了 //这里应该与第一句话区分一下
这样若a为5,要输出a的值,我们就有两种写法了
printf("%d",a);
printf("%d",*p);

有点潦草 请别介意


----------------解决方案--------------------------------------------------------

楼上说的我很明白,
请你看看问题是什么


----------------解决方案--------------------------------------------------------
累,上课不认真哦!
----------------解决方案--------------------------------------------------------
以下是引用gaga在2006-4-25 17:04:00的发言:

你听听曾怡的第24讲中说的
跟你说的不同的
*p=&a是说把地址给a让p指向a 的

除非这个讲课的人疯了

要么是这样 int *p=&a; 定义的时候写成这样,那就是让p指向a

可你写的不是定义的时候

其实上机试下就知道,这些事根本不需要讨论

----------------解决方案--------------------------------------------------------
*p=&a;
我让a=4得到*p=-58
这个-58是不是内存地址
地址有没有负数


----------------解决方案--------------------------------------------------------
地址一般是写成这种类型的例如 0xffff 你转换成10进制 是负数 也很正常
----------------解决方案--------------------------------------------------------
我先睡觉了

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------

  相关解决方案