【问题标题】:I'm having some code reading issues我遇到了一些代码阅读问题
【发布时间】:2016-02-10 10:31:24
【问题描述】:

我很快就要学习C测试了,我会感谢你帮助我阅读一些我自己搞不懂的代码,第一个是:

main()
{
    char *p = "Hello", *q = "world!";
    while (*p * *q)
        p++, ++q;
    printf("%c", *q - *p);
}

如果你们能帮助我了解输出以及那里发生的事情,那将对我有很大帮助。

【问题讨论】:

  • while(*p * *q) 应该改成while(*p && *q)
  • 这段代码好像错了。
  • 嗨,我再次检查了代码,就是这样......有什么想法吗?
  • 另一个问题,如果有一个语句:if(a & 0x8) and a is 15. 我怎么知道“If”是真还是假?

标签: code-readability


【解决方案1】:

您发布的代码对我来说似乎是错误的。

main()

应该是int main() (Declare main prototype)。

{
    char *p = "Hello", *q = "world!";

最好是const char *p; (What is the type of a string literal in C++?)。

    while (*p * *q)

p指向的值乘以q指向的值不为零

        p++, ++q;

增加pq

    printf("%c", *q - *p);

printf 不是 while 循环的一部分。在任何情况下,它都会打印所指向的值的算术差异。

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2023-03-27
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多