| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 762 人关注过本帖
标题:一道指针问题
只看楼主 加入收藏
Quavarion
Rank: 2
等 级:论坛游民
帖 子:60
专家分:28
注 册:2009-10-9
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:4 
一道指针问题
#include<stdio.h>
void main()
{
 int a=3;
 int *p;
 *p=4; ------------------------------(1)
   p=&a ;----------------------------(2)
   printf("%d %d\n",a,*p);
  getch();
}
输出结果为 3 3,为什么将(1)(2)两句改变顺序后输出 4 4 呢,我指针没学好
搜索更多相关主题的帖子: 指针 
2009-11-19 23:28
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
收藏
得分:15 
首先.你的指针赋给4值.然后.你p又指向a里面的值..所以p里就有a里面的值..
4的值被a里面的值取代.所以 a=3 p=3

第2种 你先把指针指向a的地址..p就有了a的地址。。.然后你把4赋给p.也就相当于
把4赋给a。所以。2个都是4 a=4 p=4

QQ群:96348241
2009-11-19 23:35
Quavarion
Rank: 2
等 级:论坛游民
帖 子:60
专家分:28
注 册:2009-10-9
收藏
得分:0 
挺难的,不过又感觉是这么回事,总之,谢谢LS
2009-11-19 23:43
hyfl
Rank: 7Rank: 7Rank: 7
来 自:火星
等 级:黑侠
帖 子:113
专家分:552
注 册:2008-11-20
收藏
得分:0 
(1)不能在(2)的前面的,(1)声明的指针p没有被赋值,它的值是不定的,*p=4这样是很危险的。
(2)必须在(1)的前面,输出结果就是4,4

“一切高手都是从菜鸟炼成的!”1099285180@
2009-11-20 01:12
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:5 
程序代码:
#include<stdio.h>
void main()
{
int a=3;
int *p
*p=4; ------------------------------(1)// 如果这种行为没有报错,那么请你将这个编译器扔得越远越好
   p=&a ;----------------------------(2)
   printf("%d %d\n",a,*p);
  getch();
}
典型的非法行为,编译器有问题。

要练习算法就来http:///!!有挑战哦!!
2009-11-22 10:54
快速回复:一道指针问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011217 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved