我正在对这段代码进行手动分析。在第一次调用 F1 函数后,将等待变量 D 的值变为 1,但将其值保留在 2 上。
我还注意到评论或不评论 *Y--;
没有效果。
输出为:
8 9 5 2
5 9 5 2
15 13 4 2
5 13 4 2
变量 D 不应该在第一次打印后将您的值更改为 1 吗?
#include <stdio.h>
int F1 (int, int *);
int A = 3;
int B = 7;
int C = 4;
int D = 2;
void main(void)
{
A = F1 (C, &D);
printf("\n %d %d %d %d", A, B, C, D);
C = 3;
C = F1(A, &C);
printf("\n %d %d %d %d", A, B, C, D);
}
int F1 (int X, int *Y)
{
int A;
A = X * *Y;
C++;
B += *Y;
printf ("\n %d %d %d %d", A, B, C, D);
*Y--;
return(C);
}