gpt4 book ai didi

在一条语句中两次调用具有静态字段的函数

转载 作者:行者123 更新时间:2023-12-02 01:53:14 25 4
gpt4 key购买 nike

<分区>

为了把问题说清楚,我写了一些测试代码:

#include <stdio.h>
#include <string.h>

char *foo(int a) {
printf("%d\n", a);
static char string[2];
string[0] = a > 0? '1' : '0';
string[1] = '\0';
return string;
}

int main(void) {
printf("%s\t%s\n", foo(1), foo(0));
return 0;
}

运行代码得到如下输出:

0
1
1 1

我有两个问题:1、为什么在1之前打印0?在 main 的 printf 函数中,第二个 foo 在第一个之前执行?这是一个明确的行为还是偶然。2、为什么最后输出的是1、1?预期结果应该是 1, 0。

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