我已经获得了一本开放的书本测试,并被告知我可以使用任何我需要的资源来回答问题,因为它更多的是能力测试 - 而且有一个问题让我很难过。带字符串/八进制数的int lambda表达式? (C++)
该问题要求写一个类似的函数给定 - 我敢肯定我可以做 - 但我找不到有关函数在做什么的很多信息,并且给定一个小样本,确定什么是棘手的正在发生。
的问题如下:
什么程序打印?请编写一个等效的getValue函数。
int t[]={1,2,3};
int getValue(int i)
{
return "\5\3\8"[t[i]];
}
void main()
{
printf("%d",getValue(2));
}
该程序打印'0',这是很容易的部分。我很想用一个简单的方法来回答这个问题。但是我想深入了解getValue函数究竟发生了什么。我的主要好奇心是字符串部分在lambda表达式方面所做的事情,因为\ 8不是有效的八进制数,但似乎对结果值有一些影响。
不找一个直出答案(从我收集,这就是为什么我用的是作业标记),只是在正确的方向上推
感谢您的帮助
该程序不包含lambda表达式。 – 2012-07-23 00:48:49
“\ 8”在C++ 03中未定义行为,在C++ 11中定义实现,在C90中未定义行为,并且需要在C99中进行诊断。因此,问题的答案取决于您正在查看的标准和/或实现。 – 2012-07-23 01:10:37
啊 - 以为是用了它们,深夜填饱肚子,用过度思考寻找失败了。谢谢大家! – 2012-07-23 02:32:38