# include void fun (int p) { int d=2; p=d++; printf("%d",p);
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/01 09:00:52
# include void fun (int p) { int d=2; p=d++; printf("%d",p);} main() { int a=1; fun(a);
printf("%d\n",a);}是如何执行的?返回的a值(输出)为什么不是2 而是1?
printf("%d\n",a);}是如何执行的?返回的a值(输出)为什么不是2 而是1?
printf("%d\n",a);
在主函数中输出a,而被调函数fun并没有返回值的,其类型为void,所以被调函数中的p值无法返回主调函数,他们之间是值传递,非址传递,改成下面两种都可以:
一:
# include
int fun (int p) /*改函数类型为返回int型值*/
{ int d=2;
p=d++;
printf("%d",p);
return p;
}
main()
{ int a=1;
a=fun(a);
printf("%d\n",a);
}
或者
# include
void fun (int *p)
{ int d=2;
*p=d++;
printf("%d",*p);
}
main()
{ int a=1;
fun(&a); /*改为传递变量a的地址,即传址,那么被调函数中改变值主调函数中值也改变*/
printf("%d\n",a); /*因为函数中变量的内存地址是相同的,是同一段内存单元数据*/
}都可以.
希望能够帮到您.
在主函数中输出a,而被调函数fun并没有返回值的,其类型为void,所以被调函数中的p值无法返回主调函数,他们之间是值传递,非址传递,改成下面两种都可以:
一:
# include
int fun (int p) /*改函数类型为返回int型值*/
{ int d=2;
p=d++;
printf("%d",p);
return p;
}
main()
{ int a=1;
a=fun(a);
printf("%d\n",a);
}
或者
# include
void fun (int *p)
{ int d=2;
*p=d++;
printf("%d",*p);
}
main()
{ int a=1;
fun(&a); /*改为传递变量a的地址,即传址,那么被调函数中改变值主调函数中值也改变*/
printf("%d\n",a); /*因为函数中变量的内存地址是相同的,是同一段内存单元数据*/
}都可以.
希望能够帮到您.
# include void fun (int p) { int d=2; p=d++; printf("%d",p);
void fun(int p) { int d=2; p=d++; printf("%d",p); } main() {
#include int d=1; void fun (int p) { int d=5 ; d+=p++; print
int d=1; fun(int p) {int d=5; d+=p++; printf("%d",d); } main
void p(int n) { if (n>1 &&n%2==1) p(n-1); printf(“%2d”,n); i
Int a=1; Int *p; p=&a; printf(“%d\n”,*p); 和Int a=1; Int*p; *
#include void fun(int x) { if(x/2>0)fun(x/2); printf("%d",x)
{ int a[]={1,2,3,4,5,6}; int*p; p=a; printf("%d\n",*p); prin
#include"stdio.h" void main() { int n=1; printf("%d,%d,%d\n"
#include void main() { int i=10; printf("%d,%d,%d\n",++i,i,i
#include void main() { int n=1; printf("%d,%d,%d",n,++n,n--)
下面程序的输出结果是() #include main() {int x=10,*p=&x; printf("%d,%d"