形参和实参问题形参和实参

形参和实参在址传递时共用一段空间,意思是不是实参传给形参时,形参在内存上开辟一个栈帧,而这个栈帧上存的只是指向这个实参的指针,并不是复制实参里的具体数据到这个栈帧上,是这样吗?还有这个共用是什么意思?是不是可以理解为两者一起占用

解释太多基本绕晕,你的理解是正确的。简单给你解释可以为:
在值传递时,形参和实参是共用一段内存空间的,形参在内存中开辟一个栈帧,
但是这个栈帧上存的只是指向这个实参的指针,而不是复制实参里的具体数据到这个栈帧上。因此,当实参被改变时,形参也会受到影响。

在 C/C++ 中,形参和实参在址传递时共用一段空间的意思是,函数调用时实参传递给函数形参的是一个指向实参内存区域的指针,形参和实参指向同一块内存区域,共享同一段内存空间。这样,函数内部对形参进行的修改也会影响实参的值,因为它们指向同一个内存地址。

在内存中,当函数被调用时,会在栈上开辟一段新的栈帧来存储函数的局部变量和形参。当函数参数是指针类型时,在栈帧中只会存储指向实参内存区域的指针,而不会复制实参里的具体数据到这个栈帧上。这样,函数内部对形参指向的内存区域进行的修改会直接影响实参的值。

共用的意思是形参和实参指向同一块内存区域,它们共享同一段内存空间。因此,对形参的修改也会影响实参的值。可以理解为形参和实参一起占用同一段内存空间。