很多朋友对于c语言函数指针作为形参和c++指针做函数的形参不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
在c语言中,函数掉用,指针做参数,在函数体内对形参的数据改变会影响到实...
注意在f函数里,只是把指针的值,交换了。而并没有把指针指向的内容交换。对于实参没有影响。答是B没错。如果你要求的答是A。
就是在调用函数的时候,如果在被调用的函数里面,只改变的是形参的值,是不会影响实参的。
c语言中形参与实参的关系是:形参是实参的值副本。无论参数的类型是什么,传递到子函数中的形参只是实参的值。所以,在改变形参变量自身的值时,是与实参无关的。换句话说,形参的改变不会影响到实参。
传递值的时候不影响实参 传递指针的时候能够影响实参。
C语言函数调用中形参值的变化不会传递给实参! 正确!形参都是数值,无论其类型是指针还是普通变量,都是值,指针变量表示值,普通变量表示数值。因此,他们代表的数值本身发生变化,与实参没有关系。
指针是个强大无比的东西。用指针作为函数的形参,只是把变量的传过去,函数内部的操作作用在这个指针所指向的内存空间中的内容。
void型指针可以做形式参数吗
void*指针不可以进行如下操作:int a=5;void *p=int b;b=*p;所以要访问p指向的空间中的数据,必须把void*转化成为别的类型。
C语言中,函数参数2113只能传值。与传值对应的是传引用,C语言不支持函数参数传引用,C++语言才支持。C++传引用函数:void foo(int& a) { a = 3; } 假如a = 2,foo(a)后,a = 3。
在定义函数时,函数名后面括号中的变量名称为“形式参数”,简称“形参”;在主函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为“实际参数”(简称“实参”)。
void 被翻译为无类型,相应的void * 为无类型指针。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。void 的作用 对函数返回的限定,这种情况我们比较常见。
而函数中传递的是变量的拷贝,比如指针传递的就是他保存的 如果在函数中对他保存的改掉,那么是不影响主函数中的变量的 错误的原因是scanf中是用英文的逗号,而你输入的是的逗号,切换输入法就可以了。
当需要一个形式参数直接改变对应实参的值时,该形式参数应说明为指针类型。指针传递参数本质上是值传递的方式,它所传递的是一个值。
用c语言编程时,要多用形参还是指针啊?
形参在函数定义时表示的一种占位符,实参就是里面存有实际变量值或者常量,函数调用时,实参值会自动传递给形参变量。指针比较复杂了。是变量的,如果参数类型是指针类型,则必须把实参变量的传递过去。
什么时候都可以用指针,因为用指针的效率比用变量高。当一个函数要返回1个以上的运算结果时,就必须用指针,因为一个函数只能返回一个值,更多的得用指针“带回”。
这两种形式没有任何区别,定义的都是char* 类型的指针,不过有的书上建议采用*和变量相靠近的写法,这样可以避免连续声明时的错误,例如:char *ptr,a;可以明显知道一个是指针的变量一个是char类型的变量。
当需要通过访问时,需声明为指针。例如,需要实现传递的函数形参要声明为指针。
NULL指针,只是一个方便的指针,表示不指向任何对象。真正有用的还是指向具体对象的指针。
c语言函数的形参为指针变量时,对应的实参可以是数组名。怎么理解呀_百...
因为函数f的形参是一个类型为int的指针变量,所以调用f时,可以将数组名arr作为实参传给形参p。
指针数组的实质是数组,只不过数组元素中存的是指针变量而已。
在这种情况下,函数的参数将是指向数组首元素的指针。在许多编程语言中,数组名作为参数传递给函数时会自动转换为指向数组首元素的指针。这意味着,在函数内部,你可以通过指针来访问数组中的元素,就像普通的指针一样。
形参为函数指针,实参可以是函数指针,或者指向函数的数组名。仿照形参为整形指针,实参可以是指针或者数组名。二者原理应该是一样的。
数组名a,实际上相当于&a[0]。所以,当实参是数组名,形参是指针变量时,只要保证数据类型一致即可传递。
对于一维数组来说,数组作为函数参数传递,实际上传递了一个指向数组的指针,在c编译器中,当数组名作为函数参数时,在函数体内数组名自动退化为指针。此时调用函数时,相当于传址,而不是传值,会改变数组元素的值。
好了,文章到此结束,希望可以帮助到大家。