我刚刚写了一个小程序来帮助我熟悉 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没有分配(=)任何新值,那么它的值是如何改变的?
我在练习本中看到了这个小问题,该练习本用于打印向后键入的内容。在这里,我只是不明白这个循环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)