问问一下下边的代码啥意思?求解答 特别是 for循环和 返回值return那句...

发布网友

我来回答

1个回答

热心网友

for:拆开来看
i<lim-1 ? // 如果i>=lim-1,即表达式结果为false,则返回最后的0
(c=getchar()) != '\n' ? // 读取一个字符放到c中,并判断。如果是'\n',即表达式结果为false,则返回倒数第二个0
c!=EOF // 判断c与EOF(文件结束标志)。如果不是EOF,返回true,否则返回false
:
0 // c=='\n'时的返回值
:
0 // i>=lim-1时的返回值

总结来说,如果i>=lim-1,返回0,结束循环。
否则读取一字符,判断,如果字符是'\n'或者EOF,返回0结束循环,否则返回true,继续循环。
所以循环读入一行数据,长度不超过lim-1。注意,这时s不是以0结束的。

return:^是异或操作。这条语句中,异或操作的两个数都是s[i],即相同的数,异或操作结果就是0,并且赋值到s[i]中。这是s就是以0结束的了。并且返回0。

热心网友

for:拆开来看
i<lim-1 ? // 如果i>=lim-1,即表达式结果为false,则返回最后的0
(c=getchar()) != '\n' ? // 读取一个字符放到c中,并判断。如果是'\n',即表达式结果为false,则返回倒数第二个0
c!=EOF // 判断c与EOF(文件结束标志)。如果不是EOF,返回true,否则返回false
:
0 // c=='\n'时的返回值
:
0 // i>=lim-1时的返回值

总结来说,如果i>=lim-1,返回0,结束循环。
否则读取一字符,判断,如果字符是'\n'或者EOF,返回0结束循环,否则返回true,继续循环。
所以循环读入一行数据,长度不超过lim-1。注意,这时s不是以0结束的。

return:^是异或操作。这条语句中,异或操作的两个数都是s[i],即相同的数,异或操作结果就是0,并且赋值到s[i]中。这是s就是以0结束的了。并且返回0。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com