在C Programming - Absolute Beginner's Guide第18章,例子2中,程序是这样写的
#include <stdio.h>
#include <stdlib.h>
main ()
{
int i;
char msg[25];
printf("Type up to 25 characters and then press Enter...\n");
for (i = 0; i < 25; i++)
{
msg[i] = getchar();
if (msg[i] == '\n')
{
i--;
break;
}
}
putchar('\n');
for (; i >= 0; i--)
{
putchar(msg[i]);
}
putchar('\n');
return 0;
}
我有 2 个关于该计划的问题。
msg 被分配到一个包含 25 个字符的数组,而 printf 告诉用户最多可以输入 25 个字符。难道不应该为 msg 分配一个 26 个字符的数组来容纳反斜杠零吗?
当for循环这样写时:for(; i >= 0; i--),start表达式是什么?
最佳答案
你说得对,字符串需要多一个字节作为终止符。
但程序从不将其视为字符串,因此这是一个有争议的问题。
没有。
C for 循环中的表达式都不是必需的。
作为一个典型的例子,惯用的无限循环:
for(;;) /* Do things */;
关于c - 关于 C 编程中程序的 2 个问题 - 绝对初学者指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985980/