#include <stdio.h> intx=2,y=3; void sub( int y ) {x++;y++;} void main() {intx=4;sub(x); printf("x+y=6d\n",x+y);
时间: 2023-12-02 17:02:10 浏览: 106
用c语言实现的FFT.doc
5星 · 资源好评率100%
这段程序有语法错误,因为在函数 `sub` 的定义中,形式参数 `y` 的类型没有指定,应该是 `int` 类型。同时,在 `printf` 函数中,应该使用 `%d` 格式化输出整数,而不是 `%6d`。修正后的程序如下:
```c++
#include <stdio.h>
int x = 2, y = 3;
void sub(int y) {
x++;
y++;
}
void main() {
x = 4;
sub(x);
printf("x+y=%d\n", x + y);
}
```
程序的输出结果是:
```
x+y=8
```
首先定义了全局变量 `x` 和 `y`,并分别赋值为 2 和 3。然后定义了函数 `sub`,其中的形式参数 `y` 是一个局部变量,与全局变量 `y` 没有关系。在 `main` 函数中,将全局变量 `x` 赋值为 4,然后调用函数 `sub`,将全局变量 `x` 作为实际参数传递给 `sub` 函数。在 `sub` 函数中,将全局变量 `x` 的值加 1,将局部变量 `y` 的值加 1,但这个操作并没有影响到全局变量 `y` 的值。最后使用 `printf` 函数输出全局变量 `x` 和 `y` 的和,即 8。
阅读全文