《 外贸网

  • 首页
  • 你的位置:首页

    指针形参可以改变实参

    来自:自媒体   发布日期:2024.05.19

  • 在C程里,为啥用指针做形参的函数可以改变实参数组的值?
  • 答:c语言就这样规定的,可以访问到那个地址,改变了地址里元素的值,所以实参数组的值也改变了

  • 关于指针形参改变实参问题
  • 答:不是改变实参的值,无论如何实参的值都不会被改变的。改变的是参数指针指向的值。打个比方:传递参数就是你有一个盒子,里面装了一张纸。传递的时候是新做了一个盒子在盒子里放入一张一摸一样的纸,但是无论你怎么往纸上写东西都不会影响原来的纸。传递指针也是你有一个盒子,里面装了一张纸。...

  • c语言中,形参指针变量的值改变不能使实参指针变量的地址发生改变,而可 ...
  • 答:所以正确的说法是:c语言中,形参指针变量的值改变不能使实参指针变量的值发生改变,而可以改变形参指针变量的值,也可以改变实参指针指向的变量的值。O(∩_∩)O~

  • 在C语言中,指针是怎样通过形参改变实参的?怎样理解?如果此处难讲清楚...
  • 答:首先,每个函数的形参,都相当于一个函数的局部变量.那么传值调用时,比如函数 fun(int a);的时候,调用fun(b);相当于新建了一个局部变量int a=b; 然后 改变a的值自然不会改变b.而传指针调用,比如 fun(int *p);这时调用fun(q); q是另外一个指针.那么等效于 int *p = q;这时如果改变p的值,...

  • 为什么指针可以改变实参的值?
  • 答:通俗讲指针作形参,形参里存储的是地址的值,这个值与实参的某个变量的地址是一样的,所以当改变形参所指向的地址里存的数据,其实改变的就是实参那个变量的值。而普通变量作形参,与实参中的变量其实是使用不同的存储空间,所以当形参的值发生改变时,实参所在存储空间的值并没有发生改变。

  • 形参不能改变实参,为什么在用指针传递数值的时候又可以改变呢?
  • 答:在用指针做参数的时候 因为传递的不是值本身,而是它所对应的地址,我们改变值的时候是改变那个地址里的值 所以 传递指针的话 就能改变值了 如果你希望在子函数里可以修改调用它的函数的值的话你可以使用引用函数 就比如 include<stdio.h> void fun(int &x)x = x + 1;void main(){ int a =...

  • 指针参数就一定能改变实参的值么
  • 答:(1)如果指针参数 在函数里,只做右值,不做左值,那么 实参的值不会改变。(2)如果指针参数 在函数里,做过左值,而赋给的新值数值等于老值,那么实参的值不会改变。(3)如果指针参数 在函数里,做过左值,而赋给的新值数值不等于老值,那么实参的值就改变了。(4)要把函数里更新的数值,...

  • C语言调用函数时什么情况下通过形参实参会发生改变?
  • 答:形参和实参如果都是地址(即指针)时,会发生改变形参即可改变实参的情况,因为这时形参和实参实际上是对应同一段内存的数据。

  • 指针变量作形参改变实参值吗???
  • 答:函数内 做了指针地址的交换: t = m; m = n; n = t; m 和 n 的地址 在函数内变了。但调用语句 处的地址 不会变化。可以添加打印语句,检验地址:void swap(float *m,float *n){ float *t;printf("3--%p %p\n",m,n);t = m; m = n; n = t;printf("4--%p %p\n",...

  • 为什么使用指针形参后实参的值会改变
  • 答:指针指向参数的内存地址,对指针的改变就是把内存地址中存放的数进行改变,当你读取变量时还是到这个内存地址中进行读取,当然读到的值 就会不同了