| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:一个指针有关的选择题求解释?
只看楼主 加入收藏
ly2222
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:217
专家分:618
注 册:2012-6-15
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
一个指针有关的选择题求解释?
在执行了 “int *p, m[10]={1,1,1,1,1,1,1,1,1,1,}; p=m;”之后,可实现把数组m的第八个元素赋值为8的语句有哪些?
A. m[7]=8    B.p[7]=8    C.*(p+7)=8   D.(m+7)=8   E.p=p+7; *p=8
请问C为什么是错的,C和E有什么区别。
搜索更多相关主题的帖子: 选择题 元素 
2012-11-06 16:04
soloman_hao
Rank: 2
等 级:论坛游民
帖 子:2
专家分:13
注 册:2012-11-6
收藏
得分:3 
c没错啊 跟e一样
2012-11-06 18:08
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:5 
程序代码:
#include<stdio.h>
main()
{
int *p, m[10]={1,1,1,1,1,1,1,1,1,1,};

 p=m;

 m[7]=8  ;//A. m[7]=8    B.p[7]=8    C.*(p+7)=8   D.(m+7)=8   E.p=p+7; *p=8,一个一个调试。

printf("%d",m[7]);
return 0;
}

www.qunxingw.wang
2012-11-06 21:08
李云龙
Rank: 1
等 级:新手上路
帖 子:7
专家分:8
注 册:2012-10-25
收藏
得分:0 
D错了,
2012-11-06 21:30
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
就是,自己上机测试不就OK乐

DO IT YOURSELF !
2012-11-06 22:05
ly2222
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:217
专家分:618
注 册:2012-6-15
收藏
得分:0 
经测试C是正确的
那答案怎么是ABE?
谁能解释下。
2012-11-07 20:55
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:2 
D是明显的错误,m+7表示的是数组m的首地址加7,就相当于p+7一样,它应该在初始的时候就是个常量了,把一个常量赋值给常量,显然是不符合要求的,希望能帮到你

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-07 21:31
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 楼主 ly2222
B是错误的。
只有声明声明有二维数组才能这样用
如:
  int a[2][10];
  int *p;
  p=a;
则*p[7]相当于a[0][7];而这里连“*”符都没有,只是地址,实数怎么能等于地址呢
2012-11-07 21:46
快速回复:一个指针有关的选择题求解释?
数据加载中...
 
   



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

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