Blog Stats
Posts - 1
Articles - 0
Comments - 6
Trackbacks - 0
随笔档案
2009年8月 (1)
研发里程表
2009年8月14日
#
有个题目考的是下面的一段C/C++代码
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
*
p
=
&
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 @
2009-08-14 09:53
wangjinhu 阅读(1288) |
评论 (6)
|
编辑
收藏
仅列出标题
Copyright @ wangjinhu
Powered by:
C++博客
Theme by:
.NET Monster