| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:关于指针的问题
只看楼主 加入收藏
horewen
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2007-5-21
结帖率:100%
收藏
 问题点数:0 回复次数:7 
关于指针的问题
#include<stdio.h>
void main()
{
int a=2,*p=&a,*q=&a;
printf("%d,%d\n",*p++,*(q++));
p=&a;
q=&a;
printf("%d,%d\n",*p,(*q)++);
}

请问结果是 2 ,2 还是 2 ,2 啊?
2 ,2 3 ,2
搜索更多相关主题的帖子: 指针 
2007-06-06 22:57
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
printf("%d,%d\n",*p++,*(q++));*p先结合做++ a=2.后面那个对a没有影响.
printf("%d,%d\n",*p,(*q)++);//同理.
这里只存在编译器是从右往左扫描还是反过来,大部分是前者,所以输出3 2.

倚天照海花无数,流水高山心自知。
2007-06-06 23:35
horewen
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2007-5-21
收藏
得分:0 
我在VC++的环境下运行的结果是2 ,2
2 ,2
2007-06-06 23:39
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
得分:0 

这样的题目太不好搞了


2007-06-07 08:01
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
得分:0 
3、注意*与++运算符的位置
①p++的作用是使p指向下一个存储单元。
②*p++的作用是先得到*p的值,再使p指向下一个存储单元。*与++同级,但此时的++运算是后置运算。
③*++p的作用是先使p指向下一个存储单元,再得到该存储单元的值。*与++同级,但它们的结合方向是自右向左的。
④(*p)++的作用是将p所指的存储单元的值加1。

2007-06-07 08:18
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 

不同编译器,处理左结合,还是右结合是不一样的


学习需要安静。。海盗要重新来过。。
2007-06-07 08:30
yinlenc
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-5-17
收藏
得分:0 

#include<stdio.h>
void main()
{
int a=2,*p=&a,*q=&a;
printf("%d,%d\n",*p++,*(q++));
p=&a;
q=&a;
printf("%d,%d\n",*p,(*q)++);
}
第一个输出你应该知道,

p=&a;
q=&a;又指向了a的地址。


2007-06-07 13:33
liel
Rank: 1
等 级:新手上路
帖 子:115
专家分:0
注 册:2007-1-16
收藏
得分:0 

指针这个玩意儿真不是个玩意儿啊!


2007-06-07 16:52
快速回复:关于指针的问题
数据加载中...
 
   



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

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