百度
360搜索
搜狗搜索

指针作为函数参数,指针作为函数参数有什么特点?详细介绍

本文目录一览:C语言中指针变量作为函数参数和一般变量作为函数参数的区别

1、一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。调用就是用函数名,还要传送相应的调用参数。

2、引用就是给被引用变量起别名,其实是被引用变量本身,指针就是把存放变量的地址传过去了,这两个当参数传入时,对他们的修改都会影响到变量本身。

3、指针和数组都属于传址方式,也就是把实参的地址传递给形参,形参和实参共享一个内存单元。形参数值的改变会影响到实参的数值。而变量的传递属于传值方式,把主程序调用过程的具体数值(实参)复制给函数的参数(形参)。

4、C++的函数传递参数有变量、引用和指针三种方式:此外,数组作为函数的参数时,是传 引用 的;形参数组改变了,实参数组也会改变。

怎样用函数指针做参数?

选D 因为第一个参数是地址传递,fun(&b,a);中传入a字符。*c=*c+1将c的值变为b字符。主函数的值改变。第二个参数是值传递,所以在函数中d的值为B字符。但是并不影响主函数的值,所以主函数输出a的值是A。

*py就是x,这里相当于x=10;指针变量作为函数的参数时,子函数可以通过指针引用实参地址中的数据,达到修改实参地址中的数据。

指针就是一个地址,用指针传递就是传递一个地址,你对一个地址所对应的内存操作,当然就会在被调函数中改变调用函数的变量的值。

如果你真想用double并想算的数大,就使用malloc()函数给指针在堆中分配内存,结束时用free()释放就行了,当然这个前提是你对指针很熟悉,不让你很容易出错!还有,楼上说数组的问题。

应该改为 if((*cmp)(a[i],a[i+1]))swap(a+i,a+i+1);才对。估记swap是交换两个地址的内容。b u b b l e _ s o r t函数的最后一个参数是指向函数的指针,即是函数的入口地址。

这样t才可以看做二维数组,而单单的int **t仅仅是指向一个指向整数的指针。所以你可以写 int **t, *ptr, a;a = 10;ptr = t = 但是不能直接用作函数原型里作为2维数组传值的形参。

c语言中指针作函数的参数是怎么回事???有点不懂!!!

1、看你的需要了,有时不用指针作为参数达不到你要的效果,比如一个swap()函数。int swap(int a,int b){ int tmp;tmp=a;a=b;b=tmp;} 如果你想调用该函数交换两个变量的值,在主函数中输出,那是不可能的。

2、在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。

3、return b;} int fun(int a,int b,m_fun p){ return p(a,b);} 调试通过,结果正确。不过初学的话不建议用fun那个函数,对于初学者有点过了。其实学过一遍以后用fun这个函数比较好,这里涉及到函数指针的问题。

4、C语言中,函数参数只能传值。与传值对应的是传引用,C语言不支持函数参数传引用,C++语言才支持。C++传引用函数:void foo(int& a) { a = 3; } 假如a = 2,执行foo(a)后,a = 3。

5、通过参数告诉函数:参数指向的单元存放着你要的数据(供函数读写),处理完后也可以将结果放到那些单元(函数结束后供调用程序读写),这样双方都可以读写数据和结果,称为双向传递。

C语言指针作为函数参数

1、int b){ int tmp;tmp=*a;a=*b;b=tmp;} 但是给函数传值时要注意,指针是指向地址的,所以参数要是地址,即需要给变量取地址。

2、一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。调用就是用函数名,还要传送相应的调用参数。

3、fun(&b,a);中传入a字符。*c=*c+1将c的值变为b字符。主函数的值改变。第二个参数是值传递,所以在函数中d的值为B字符。但是并不影响主函数的值,所以主函数输出a的值是A。b的值是b。

4、通过参数告诉函数:参数指向的单元存放着你要的数据(供函数读写),处理完后也可以将结果放到那些单元(函数结束后供调用程序读写),这样双方都可以读写数据和结果,称为双向传递。

用指针变量作为函数参数

1、错,指针变量既可以作为函数的形参,也可以作函数的实参。当数组名作函数的参数时,传递到是数组的起始地址,形参是用来接受从实参传递过来的实参数组的地址的。因此,形参应该是一个地址变量(只有指针才能存放地址)。

2、一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。调用就是用函数名,还要传送相应的调用参数。

3、如果要真正达到交换的目的,就要用指针传值。这样定义函数:void swap(int a,int b){ int tmp;tmp=*a;a=*b;b=tmp;} 但是给函数传值时要注意,指针是指向地址的,所以参数要是地址,即需要给变量取地址。

4、指针就是一个地址,用指针传递就是传递一个地址,你对一个地址所对应的内存操作,当然就会在被调函数中改变调用函数的变量的值。

c语言中用一个函数指针作为另一个函数的参数,该怎么解决

一个函数(actionfun)作为另一个函数的参数(mainfun),实际上是在运行主函数mainfun的时候,得到的一些数值传入到actionfun函数中,actionfun为主函数做一些设置也可以执行一些其他的功能,但都要从主函数mainfun中得到参数。

你在子函数中要对你的主调用函数中变量进行操作时也可以用指针做参数,这样子函数就可以不用return 如果不是用指针的话,就要再子函数的未尾加上一条return x;把这个数返回当返回值。

b u b b l e _ s o r t函数的最后一个参数是指向函数的指针,即是函数的入口地址。如果smaller=1的话,代入i n t (*cmp ) ( int , i n t ) ),本身就不对。

swap() 中是 int *p1 和int *p2这是因为这是swap的定义,既然是定义就要声明参数的类型,这里声明的是int*类型,那使用的时候就要传递int*类型的。主函数里的类型也是int*,对应上了,就可以了。

以函数指针作为形参,即可实现函数名作为参数,由另一个函数调用。如 void func(int (*a)(int)){ int r = 100l; (*a)(r);}即可传入函数指针,并以r为参数,调用该指针指向的函数。

阅读更多 >>>  transient变量,哪些不能序列化

网站数据信息

"指针作为函数参数,指针作为函数参数有什么特点?"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:指针作为函数参数,指针作为函数参数有什么特点?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!