下列程序的输出结果是 void fun(int a, int b, int c) a=4;b=5;c= 6; int main() int x= 1,y= 2,z = 3; fun(x,y,z); printf("%d,%d,%d\n",x,y,z); return 0;
时间: 2023-11-27 12:55:00 浏览: 561
程序的输出结果是:
```
1,2,3
```
因为在函数`fun`中,传递的参数是按值传递的,也就是说,函数内部对参数的修改不会影响到外部实参的值。所以在函数`fun`中修改了`a`、`b`、`c`的值,但是不会影响到`main`函数中`x`、`y`、`z`的值。
相关问题
用c语言交换两个整数的值,函数接口定义:void fun (int *a,int *b);
下面是交换两个整数的值的 C 语言代码:
```c
void fun(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
调用这个函数时,传入两个整数的地址即可:
```c
int main() {
int a = 1, b = 2;
printf("Before swap: a = %d, b = %d\n", a, b);
fun(&a, &b);
printf("After swap: a = %d, b = %d\n", a, b);
return 0;
}
```
输出:
```
Before swap: a = 1, b = 2
After swap: a = 2, b = 1
```
void fun(int *a, int *b) { int *k; k = a; a = b; b = k; }实现了什么
这个函数交换了两个指针变量的指向,但是并没有交换指针指向的内存空间中存储的数据。
具体来说,这个函数接收两个指向 int 类型的指针 a 和 b,然后对指针进行交换,将 a 指向 b 指向的内存地址,将 b 指向 a 指向的内存地址,但是并没有改变 a 和 b 指向的内存空间中的数据。
如果想要实现交换两个指针指向的内存空间中存储的数据,需要使用类似于下面的代码:
```c++
void fun(int *a, int *b) {
int k = *a;
*a = *b;
*b = k;
}
```
这个函数会交换 a 和 b 指向内存空间中存储的数据。
阅读全文