gpt4 book ai didi

c - 为什么这个 C 程序打印 3 2 15 而不是 2 3 20?

转载 作者:行者123 更新时间:2023-11-30 21:49:04 25 4
gpt4 key购买 nike

#include<stdio.h>
int main()
{
int a[5] = {5, 1, 15, 20, 25};
int i, j, m;
i = ++a[1];
j = a[1]++;
m = a[i++];
printf("%d, %d, %d", i, j, m);
}

您能解释一下这个程序背后的逻辑吗?

最佳答案

像这样尝试(或使用调试器,或者只是在一张纸的帮助下仔细思考)

#include <stdio.h>
int main()
{
int a[5] = {5, 1, 15, 20, 25};
int i, j, m;
i = ++a[1]; fprintf(stderr, "i is %d; a[1] is %d\n", i, a[1]);
j = a[1]++; fprintf(stderr, "j is %d; a[1] is %d\n", j, a[1]);
m = a[i++]; fprintf(stderr, "m is %d, i is %d; a[i] is %d\n", m, i, a[i]);
printf("%d, %d, %d", i, j, m);
}

参见code running on ideone .

关于c - 为什么这个 C 程序打印 3 2 15 而不是 2 3 20?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52804230/

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