小编Mat*_*mmm的帖子

C 中包含递增的逻辑表达式的求值

我刚刚写了一个小程序来帮助我熟悉 C 中的逻辑表达式,我期望结果是:

1 
1 1 1
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>

int main(void) 

{

    int I = 1, J = 1, K = 1;
    printf("%d\n", ++I || ++J && ++K);
    printf("%d %d %d", I, J ,K);

    return 0;
}

Run Code Online (Sandbox Code Playgroud)

相反,我得到了:

1 
2 1 1
Run Code Online (Sandbox Code Playgroud)

的价值 I增加了 1,我不知道为什么。

据我所知,我的程序中I没有分配(=)任何新值,那么它的值是如何改变的?

c evaluation increment logical-operators

2
推荐指数
1
解决办法
102
查看次数

有关C语言中循环语法的问题

我在练习本中看到了这个小问题,该练习本用于打印向后键入的内容。在这里,我只是不明白这个循环for (; i >= 0; i--),为什么它不首先将赋给i变量,这也是一种正常的语法吗?谢谢!

#include <stdio.h>
#include <string.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(); //Outputs a single character
        if (msg[i] == '\n') {
            i--;
            break;
        }
    }
    putchar('\n'); // One line break after the loop is done.
    for (; i >= 0; i--) {   // <--- this is the line
        putchar(msg[i]);
    }
    putchar('\n'); …
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
1
解决办法
86
查看次数

标签 统计

c ×2

evaluation ×1

increment ×1

logical-operators ×1