| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 551 人关注过本帖
标题:本人是初学者,请高手指教
只看楼主 加入收藏
leexuezhe
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-11-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
本人是初学者,请高手指教
#include<iostream.h>
#include<string.h>
int year=2003;
char M[]="ABCD";
int Get1() { return(year); }
int &Get2() { return(year); }
char Get3(int a) {return(M[a]);}
char *Get4(int a) {return(M+a);}
char &Get5(int a) {return(M[a]);}
void main( )
{
   int b;
   char K[10]={0};
   Get2( )++;
   b=Get1( )+Get2( );
   K[0]=Get3(1);
   K[1]=Get5(0);
   Get5(2)= 'Y';
   strcpy(K+2, M+1);
   Get5(1)+=32;
   cout <<"M="<<M;
   cout <<"K="<< K << "b=" << b << endl;
}
这个程序的过程看不懂,请高手详解,先谢谢了!
搜索更多相关主题的帖子: include return 
2011-11-24 14:21
hxcet
Rank: 4
等 级:业余侠客
帖 子:78
专家分:229
注 册:2011-11-15
收藏
得分:20 
Get()函数是对year的一个引用,故Get2()++就相当于year++,所以主函数里,执行完Get2()++后,year=2004,而Get1()返回的也是year,所以最后的输出b=Get1()+Get2()=2004+2004=4008.
K[0]=Get3(1)即为K[0]=M[1]='B',K[1]=Get5(0)即为K[1]=M[0]='A',而Get5(2)='Y'即是M[2]='Y',即此时M[]="ABYD",接下来的strcpy(K+2, M+1)是指将M[1]及M[1]以后的字符复制为K[2]及K[2]以后的字符,即K[2]=M[1]='B',K[3]=M[2]='Y',K[4]=M[3]='D'.故最终K[]="BABYD".
Get5(1)+=32意思是M[1]+=32,故M[1]='B'+32='b',所以最终M[]="AbYD".
2011-11-25 09:56
leexuezhe
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-11-24
收藏
得分:0 
谢谢楼主
2011-11-29 12:55
leexuezhe
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-11-24
收藏
得分:0 
再次感谢
2011-11-29 13:34
梦ambious
Rank: 2
等 级:论坛游民
帖 子:27
专家分:71
注 册:2011-11-25
收藏
得分:0 
这段程序从哪看到的,上面有好多错误,比如说#include<iostream.h>,.h是C语言的扩展名,当然在C++中也能用,可是那也应该用<stream.h>或者用<iostream>,而不是<iostream.h>,还有string类字符串是C++独有的,根本不用在其后面加上.h扩展名。底下的int year=2003;你是放在主函数外面的,也就是全局变量,应在前面加上const。意思嘛,前面说的很清楚,不过你还是要注意一下编程规范。
2011-11-29 14:54
快速回复:本人是初学者,请高手指教
数据加载中...
 
   



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

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