本文目录一览:
- 1、C语言,第四题,为何输出的值不变
- 2、求教 c语言为什吗输出的值没有改变
- 3、C语言输出结果不变
- 4、C语言,为何输出C的内容不变,调用里不是把b都赋值给a了么
- 5、c语言题为什么运行后输出结果不变啊?
C语言,第四题,为何输出的值不变
因为它传递的是a,b的地址,在函数p中对地址的改变并不会影响到main函数中变量的取值。
要想得到交换变量值的效果,函数p应该这样写:
void p(int *a,int *b)
{int t;
t=*a; *a=*b; *b=t;}
求教 c语言为什吗输出的值没有改变
swap函数在执行时,函数内部的a和b只是你传进去的参数的一个引用,即函数编译完,系统重新定义了两个指针变量(编译器做的事),指向你传进去的指针变量,你在函数里改变的是系统重新定义的两个变量,你定义的两个指针并没有变,当然不会影响外面的输出了。
C语言输出结果不变
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
int data, goal;
srand(time(NULL));
while (1) {
printf("请输入你猜的数字\n");
scanf("%d", data);
goal = rand() % 100;
while (goal != data)
{
if (goal data)
{
printf("Wrong,过大\n");
}
else
{
printf("Wrong,过小\n");
}
scanf("%d", data);
}
if (data == goal)
{
printf("Right\n");
}
}
return 0;
}
C语言,为何输出C的内容不变,调用里不是把b都赋值给a了么
f(c)的参数是值传递,不会改变c的值,调用f()函数的时候相当于是把c的内容复制了一份作为参数a传递给了f()函数,对c本身的内容并不会产生影响。
c语言题为什么运行后输出结果不变啊?
你的疑问应该是在f()函数中为什么明明修改了结构体的值,但是实际的结构体确没有改变。
这是由于c语言中的方法参数传递分为传值引用(形参,在方法中修改的值只在方法中有效)和指针引用(实参,可以直接修改实际结构体或参数的值),而你问题中的代码属于形参传递,所以在main函数中打印的结果没有变化。希望对你有用!