| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1284 人关注过本帖
标题:[求助]请教几道有关指针和算术表达式的简单题目.
只看楼主 加入收藏
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:19 
[求助]请教几道有关指针和算术表达式的简单题目.
有这样一个语句:
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a
则值为3的表达式是
A:p+=2 ,*(p++)
B:p+=2,*p++
C:p+=2,*++p
D:p+=2,++*p
答案是A,我想问一下这四句话分别表示什么意思?我个人觉得只要p+=2就能表示3了,因为p=p+2表示地址向后移两位,为什么后面还要加上*(p++)?

有下面这样一个程序,它的显示结果是:
main()
{
char *d[]={"ab","cde"};
printf("%x",d[1]);
}
答案是:字符c的地址.我是这样理解这个答案的,指针数组是存放第一个元素地址的,d[0]表示"ab"中a的地址,那么d[1]就是"cde"中c的地址,这样理解对吗?还有,不管以十六进制还是其它形式输出都是c的地址对吗?和输出形式无关对吗?


有这么一段程序,它的输出结果是:
main()
{
i=5,j=9,x;
x=(i==j?i: (j=7));
printf("\n%d,%d",i, j);
}

答案是5,7,可我觉得应该是5,9.我是这样想的,x=(i==j?i: (j=7));这一步得出的结果是x=7,虽然x=7,但j和i的值都没有改变,所以输出的结果应该还是5,9.不知道我的思路对吗?

搜索更多相关主题的帖子: 算术 指针 表达 
2006-08-17 16:10
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
以下是引用inku在2006-8-17 16:10:57的发言:


有这么一段程序,它的输出结果是:
main()
{
i=5,j=9,x;
x=(i==j?i: (j=7));
printf("\n%d,%d",i, j);
}

答案是5,7,可我觉得应该是5,9.我是这样想的,x=(i==j?i: (j=7));这一步得出的结果是x=7,虽然x=7,但j和i的值都没有改变,所以输出的结果应该还是5,9.不知道我的思路对吗?


j 后来在程序中被赋值过了,


中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-17 16:16
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
第一题,搞清楚指针和指针变量.

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-17 16:20
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

p+=2 是個地址, *(p++) 才是值(問題要問的).
我覺得答案是 A, B, 輸出 *(p++) 和 *p++ 的值都是 3

d[1] 是 "cde" 的首地址. 是 d 的行指針(第二行)


j=7, 執行完 x 賦值後, 又執行了 對 j 的賦值, 改寫的 j 的值


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-17 16:23
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
支持

分析的好仔细哦.

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-17 16:28
ar7043
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-15
收藏
得分:0 
第一题p+=2把p的地址向后移了两位。又自加表达式不是变成4了吗?

2006-08-17 17:05
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
先取值而後增吧

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-17 17:19
ar7043
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-15
收藏
得分:0 
p++不是在括号里么?应该先加再取值吧。

2006-08-17 21:34
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
不是,是先参与表达式的计算,再进行+1
2006-08-17 21:37
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用ridwsc在2006-8-17 16:16:37的发言:


j 后来在程序中被赋值过了,

通过前辈这么一说,这道题我完全懂了,谢谢!

2006-08-17 23:13
快速回复:[求助]请教几道有关指针和算术表达式的简单题目.
数据加载中...
 
   



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

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