C语言实参形参问题?

Python016

C语言实参形参问题?,第1张

形参的值是在调用函数时,由实参传递过去的。一开始形参的值与实参相等,但在被调用函数内部可以改变形参的值,而这种改变不会影响实参的值,因为形参是实参的一份拷贝,两者分配的内存储存单元是不同的。

比如:

#include<stdio.h>

//x、y是形参

void f(int x,int y)

{

//对于下面main中对f的调用,这里会输出1,2

printf("%d,%d\n",x,y)

//这里就会改变x和y的值为8和9

x=8

y=9

//而这里会输出8,9

printf("%d,%d\n",x,y)

}

int main()

{

int a=1,b=2

//调用f

//a、b是实参

f(a,b)

return 0

}

出现BUG的问题不太清楚,但是解决方法是你得把生成的debug.exe删掉,是代码生成错误后,找不到debug的执行文件才会这样,你删掉以后重新生成一次,还是不行就是代码挂了。然后问题的原因我大概看了一下,你在fun()里char了一个指向s的指针,但是这个s是局部的,所以说s的生命周期到fun()语句结束就释放掉了,而main函数里的s是你另开辟的一个100元素的字符数组,它只代表数组,并不会调用fun()里的s,建议你内存分配先看一下,特别是堆栈这一块。