gpt4 book ai didi

c - 关于 C 编程中程序的 2 个问题 - 绝对初学者指南

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:02 25 4
gpt4 key购买 nike

在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 个关于该计划的问题。

  1. msg 被分配到一个包含 25 个字符的数组,而 printf 告诉用户最多可以输入 25 个字符。难道不应该为 msg 分配一个 26 个字符的数组来容纳反斜杠零吗?

  2. 当for循环这样写时:for(; i >= 0; i--),start表达式是什么?

最佳答案

  1. 你说得对,字符串需要多一个字节作为终止符。

    但程序从不将其视为字符串,因此这是一个有争议的问题。

  2. 没有。

    C for 循环中的表达式都不是必需的。

    作为一个典型的例子,惯用的无限循环:

    for(;;) /* Do things */;

关于c - 关于 C 编程中程序的 2 个问题 - 绝对初学者指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com