fputc用string和int参数? “01234”[(int)的tmp_seq [j]的[I]]

时间:2012-11-18 14:45:11

标签: c++ c

我看到了这行代码:

fputc("01234"[(int)tmp_seq[j][i]], opt->fp_bfast);

直到现在我认为fputc得到一个字符并将其放入输出流中。 这行代码做了什么

2 个答案:

答案 0 :(得分:5)

代码通过将字符串视为字符数组来索引字符串"01234"以选择字符。索引是(int)tmp_seq[j][i]

大概(int)tmp_seq[j][i]保持04之间的值,否则会有一个数组索引越界错误。

答案 1 :(得分:0)

"01234"[(int)tmp_seq[j][i]]是一种相当可怕,低效的写'0'+tmp_seq[i][j] ...

的方式