大哥为什么我这个程序的结果没有把a,b值互换
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/05 19:43:57
大哥为什么我这个程序的结果没有把a,b值互换
# include
void huhuan(int a,int b)
{
int t;
t = a;
a = b;
b = t;
return;
}
int main(void)
{
int i = 4;
int j = 6;
huhuan(i,j);
printf("i = %d,j = %d\n",i,j);
return 0;
}
# include
void huhuan(int a,int b)
{
int t;
t = a;
a = b;
b = t;
return;
}
int main(void)
{
int i = 4;
int j = 6;
huhuan(i,j);
printf("i = %d,j = %d\n",i,j);
return 0;
}
# include <stdio.h>
void huhuan(int *a, int *b)//
{
int t;
t = *a;//
*a = *b;//
*b = t;//
//return;
}
int main(void)
{
int i = 4;
int j = 6;
huhuan(&i, &j);//
printf("i = %d, j = %d\n", i, j);
return 0;
}
再问: 这个我懂。只是我只想知道我的那个程序为什么没把i, j的值互换.明明函数里互换了,当被调函数终止时形参的值不是会返回给实参吗?
再答: 第一,哪里有返回,你的函数类型明明是void 第二,就算有返回值,那调用方都没有变量来接收返回值 第三,就算调用函数有了接收的变量,函数也无法同时返回两个返回值
再问: 嗯!大哥我还想问下这个流程:当执行完这被调函数时,程序是不是回到了主调语句,而此时的主调语句里的i, j 地址空间里的值已经互换了,所以printf输出时i和j的值就换过来了?
再答: 你根本没有理解函数,指针的实质,好好看书
void huhuan(int *a, int *b)//
{
int t;
t = *a;//
*a = *b;//
*b = t;//
//return;
}
int main(void)
{
int i = 4;
int j = 6;
huhuan(&i, &j);//
printf("i = %d, j = %d\n", i, j);
return 0;
}
再问: 这个我懂。只是我只想知道我的那个程序为什么没把i, j的值互换.明明函数里互换了,当被调函数终止时形参的值不是会返回给实参吗?
再答: 第一,哪里有返回,你的函数类型明明是void 第二,就算有返回值,那调用方都没有变量来接收返回值 第三,就算调用函数有了接收的变量,函数也无法同时返回两个返回值
再问: 嗯!大哥我还想问下这个流程:当执行完这被调函数时,程序是不是回到了主调语句,而此时的主调语句里的i, j 地址空间里的值已经互换了,所以printf输出时i和j的值就换过来了?
再答: 你根本没有理解函数,指针的实质,好好看书
这个程序怎么我把a输入的非常小的时候还是不能运行出the equation is not quadratic这个结果呢?
随机产生一个两位的正整数,编写程序把该两位数的十位与个位互换.比如,对于两位数据45,互换的结果为54
哪位大神能帮我把这个程序注释一下,我只知道程序运行结果!
C语言编程:已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来
谁来给我解释这个程序的结果?
我的这个lingo程序为什么解不出
为什么我写的这个matlab程序没有错误,但是画不出图?
这个程序是想让我输出数组array的值,而不是数组P中的值,结果为什么不是0 1 2 3 4
C语言编程已知a、b均是整型变量(假定a=10,b=25),写出将a,b两个变量中的值互换的程序来.
初一下学期,帮个忙啊把xy输入A,B,C三个程序所得结果之比为1:4:5,且A,B,C的运算程序分别为2x+y-2,x-
以下程序在运行是时,输入变量a的值为1,变量b的值为2,写出程序的运行结果
C语言中,*pa,*pb是指向a,b的指针.直接将a,b的值互换,为什么指针还是指向原来的值啊?