单引号的行为与Ruby中的行为相同吗?

时间:2012-06-23 04:48:35

标签: c ruby

我开始探索Ruby的基础,它是C,

printf('%%\\');

上面的代码是否允许在C?

2 个答案:

答案 0 :(得分:2)

#include <stdio.h>

int main(void) {
        printf('%%\\');
        return 0;
}

6行。请下次再试一次。 它会产生运行时错误。

所以不,这是不允许的。你真的要问这个吗?

如果您不想在本地进行操作/没有手头的编译器/其他原因,我建议使用ideone和codepad快速测试。

编辑:

看到另一个答案,我想我应该注意到

#include <stdio.h>

int main(void) {
        printf("%d", '%%\\');
        return 0;
}

非常好,打印2434396。 我只是不希望你知道单引号是非法的。

答案 1 :(得分:0)

不,代码是不允许的。

在Ruby中,单引号用于编写字符串文字,即字符串类型的值。在C '%%\\'中,类型为int。由于printf期望字符串(char*)作为其第一个参数,'%%\\'不是printf的有效第一个参数。