#include <stdio.h>
int main()
{
short int i = 20;
char c = 97;
printf("%d, %d, %d\n", sizeof(i), sizeof(c), sizeof(c + i));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这段代码的输出是
2, 1, 4
Run Code Online (Sandbox Code Playgroud)
根据我应该是
2, 1, 2
Run Code Online (Sandbox Code Playgroud)
因为char + short int是short int和大小的short int是2.
#include <stdio.h>
int i;
int main()
{
extern int i;
if (i == 0)
printf("scope rules\n");
}
Run Code Online (Sandbox Code Playgroud)
输出:范围规则
extern变量如何在这里起作用?
为什么没有像这样的错误
Compile time error due to multiple declaration
#include <stdio.h>
#define MIN 0
#if defined(MIN) + defined(MAX)
#define MAX 10
#endif
int main()
{
printf("%d %d\n", MAX, MIN);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出
10 0
是什么意思#if defined(MIN) + defined(MAX)?
为什么它在#define MAX 10以后定义时有效?
#include <stdio.h>
int main()
{
reverse(1);
return 0;
}
void reverse(int i)
{
if (i > 5)
exit(0);
printf("%d\n", i);
return reverse(i++);
}
Run Code Online (Sandbox Code Playgroud)
这种递归是如何工作的?
当我跑步时,它1无限打印.我期待输出12345
我在分支上工作,我最近重构了我的文件夹结构,很多文件在这里和那里移动,许多文件也被重命名。但是当我将 master(旧结构)合并到我当前的分支时,git 能够理解文件的位置并自动合并代码而不会发生冲突。这怎么可能?
#include <stdio.h>
int main(){
int i = 0;
do {
i++;
printf("In while loop\n");
} while (i < 3);
}
Run Code Online (Sandbox Code Playgroud)
输出:
In while loop
In while loop
In while loop
Run Code Online (Sandbox Code Playgroud)
为什么printf语句被执行三次?一旦循环开始,i的值变为1,所以循环应该只运行2次但它运行3次,怎么样?