c语言函数指针的实参,c语言函数形参为指针

c语言中指针函数可以改变实参的值吗

c语言中形参与实参的关系是:形参是实参的值副本。无论参数的类型是什么,传递到子函数中的形参只是实参的值。所以,在改变形参变量自身的值时,是与实参无关的。换句话说,形参的改变不会影响到实参。

在旅顺口等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站设计 网站设计制作按需网站开发,公司网站建设,企业网站建设,品牌网站设计,全网营销推广,成都外贸网站建设公司,旅顺口网站建设费用合理。

但,如果参数类型是指针类型,则可以通过对指针变量所指向的地址中的数据进行修改,达到改变实参地址中的数据目的。

因此,使用swap函数进行数据交换时,必须保证两点:

1.

参数必须是指针类型,指向待交换的数据

2.

交换时,必须交换地址中的数据,而不是交换地址本身。

参考代码:

//错误的交换代码1

void swap1( int a, int b ) //参数不是待交换数据的指针

{

int t=a;

a=b;

b=t;

}

//错误的交换代码2

void swap2( int *a, int *b )

{

int *t=a;//交换形参变量本身

a=b;

b=t;

}

//正确的交换代码

void swap( int *a, int *b )

{

int t=*a;//交换形参变量地址中的数据,指针变量不变

*a=*b;

*b=t;

}

c语言中形参和实参的区别?

有以下区别:

1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。

2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。

需要注意当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。

c语言 请问指针变量可以作实参吗

指针可以作实参。但你那样写是错误的,因为int

*a=NULL;的意思是指针a不可作右值使用,而后面的A(a);恰恰是把a当右值使用了。这样写就可以,如:int

x,*a=x;A(a);或int

y[10],*a=y;A(a);等等……

C语言中当形参是指针,实参是什么?当实参是指针,形参是什么?为什么?

第一个问题:

形参是指针,实参就应该是对应数据类型的地址。

例如:

swap(int *x,int *y)

{

int t ;

t = *x;

*x = *y;

*y = t;

}

int main()

{

int a = 2,b=6;

swap(a,b);

//因为swap函数的形参是int类型的指针,所以传入的实参应该是int类型变量的地址

return 0;

}

第二个问题:

当实参是指针的时候,形参应该是什么?

其实很简单,你只要把

第一问列出来 ①实参:地址 ②形参 :指针

一一对应出来 ①实参:指针 ②形参:指针的指针

因为你要在局部函数中改变实参,就需要传递它的地址,指针也是如此,把它类比为int型变量就好了。

个人理解,希望能帮到你,如有不对,欢迎指正

c语言函数的形参为指针变量时,对应的实参可以是数组名。怎么理解呀

举例:

void f(int *p)

{

}

int arr[]={1,2,3};

因为函数f的形参是一个类型为int的指针变量,所以调用f时,可以将数组名arr作为实参传给形参p。即可以这样调用:f(arr);

c语言函数中的实参和形参是什么意思啊我老是看不懂 谢谢了

顾名思义,形参只是为了塑造一个函数的外形.比如max(x,y),这里x和y我们叫它形参.而我们有两个数a=10,b=8,把a和b赋值给max函数的话,就可以比较a和b的最大值,那么a,b在这里就叫做实参,是实际输入的值.

你自己复制的不是很清楚吗,解释的很好.


网页名称:c语言函数指针的实参,c语言函数形参为指针
分享地址:http://myzitong.com/article/hoigdh.html