C++博客 联系 聚合 管理  

Blog Stats

随笔档案

研发里程表

char str[20],*p=str;
scanf(
"%s",p[2]);

 
 

这段代码正确吗?



将错就错换一个考法吧,如何让这段代码正常运行呢?

下面列了我能想到的几个方法

1.         通过宏

#define scanf()  scanf("%s",&str[2])

 
 

2.         重载

 

namespace
{
void scanf(const char*pfmt, char &pR)
{
       
char*= &pR;
       ::scanf(
"%s",p);
}
};
 

 

3.         还是宏

 

#define char unsigned long
char str[20],*p=str;

p[
2]=(unsigned long)&p[2];
scanf(
"%s",p[2]);
 

 


  

4.         或者插入

unsigned 
long pdw[3];
 pdw[
2]=(unsigned long)&p[2];
 
#define p pdw
 


 

posted on 2009-08-14 09:53 wangjinhu 阅读(1288) 评论(6)  编辑 收藏 引用

评论

# re: 有个题目考的是下面的一段C/C++代码 2009-08-14 11:07 abettor
博主真懒,舍不得解释一下。
这篇文章对初学C++的人没有任何帮助。
鄙视一下。  回复  更多评论
  

# re: 有个题目考的是下面的一段C/C++代码 2009-08-14 11:19 sToa
鄙视一下 看不明白  回复  更多评论
  

# re: 有个题目考的是下面的一段C/C++代码 2009-08-14 11:23 Pear
这道题到底是改错还是不改错啊?改错就p+2,不改错那这题就是错误指导了  回复  更多评论
  

# re: 有个题目考的是下面的一段C/C++代码 2009-08-14 12:11 wangjinhu
一个题目两个问法,原始的题目是改错题。
第二个问法是纯粹考技巧的@Pear
  回复  更多评论
  

# re: 有个题目考的是下面的一段C/C++代码 2009-08-14 12:54 Pear
哦哦~原来如此  回复  更多评论
  

# re: 有个题目考的是下面的一段C/C++代码 2009-08-14 15:38
我也鄙视一下  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理