编译并运行此c程序后出现未知错误

编译并运行此c程序后出现未知错误,c,function,switch-statement,C,Function,Switch Statement,我已经编写了这段代码,并尝试使用默认的GCC编译器在代码块中编译它。 当给出选项1时,我得到的输出是“hello world6356744”。 请解释发生了什么事 #include<stdio.h> #include<stdlib.h> int fun1(int x,int y) { printf("hello world"); return x+y; } int fun2() { return 0; } int main() { printf("type 1 fo

我已经编写了这段代码,并尝试使用默认的GCC编译器在代码块中编译它。
当给出选项1时,我得到的输出是“hello world6356744”。 请解释发生了什么事

#include<stdio.h>
#include<stdlib.h>

int fun1(int x,int y)
{
printf("hello world");
return x+y;
}
int fun2()
{
return 0;
}


int main()
{
printf("type 1 for * or type 2 for #");
int a;
scanf("%d", &a);

int ca1;

switch(a)
{
case 1:

    ca1=fun1(2,3);
    printf("%d", &ca1);
    break;

case 2:
    fun2();
    break;
default:
    printf("invalid input");

}
return 0;
}
#包括
#包括
int fun1(int x,int y)
{
printf(“你好世界”);
返回x+y;
}
int fun2()
{
返回0;
}
int main()
{
printf(“类型1代表*或类型2代表#”);
INTA;
scanf(“%d”和“&a”);
int ca1;
开关(a)
{
案例1:
ca1=fun1(2,3);
printf(“%d”和&ca1);
打破
案例2:
fun2();
打破
违约:
printf(“无效输入”);
}
返回0;
}

您正在第28行打印指针的地址(&N)。移除(&F),printf应能正常工作。Printf不接受地址,而是接受值


使用scanf读取输入时,即提供变量/指针的地址,因为scanf直接修改传递给它的变量/指针。

您正在第28行打印指针的地址(&p)。移除(&F),printf应能正常工作。Printf不接受地址,而是接受值


当使用SCANF读取输入时,即当您提供变量/指针的地址时,因为SCANF直接修改您传递到的变量/指针。< /P>没有问题,即使是经过经验丰富的C和C++开发人员也会遇到这个问题。书中有整章专门介绍“通过引用传递变量”和“通过值传递变量”。没有问题,即使是经过经验丰富的C和C++开发人员也会遇到这个问题。书中有整整一章专门讨论“通过引用传递变量”和“通过值传递变量”。你希望它做什么?这个输出是我所期望的,你期望它做什么?这就是我所期望的结果