今天给各位分享c语言指针形参的知识,其中也会对c语言指针做形参进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
为什么C语言函数传参数的时候要传指针?
何时用指针,何时用拷贝。当传的参数是一个结构体,而这个结构体比较大,这时最好用指针,因为如果用拷贝的话,单单花在拷贝的时间就要浪费很多,而如果这个函数经常被调用,那么这效率问题就出现了。
函数的调用必须是已知文件名的。如果你写一个系统的某一层,不知道其他层的内部情况,这时候用指针传递函数最合适。还有,结构体里包含指向函数的指针,就相当于一个简单的“对象”了。看看linux内核里各接口的定义。
函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找到这些变量的位置和内容。
在c语言中指针做形参为什么要用&
1、用在声明语句时,如 int A;int &a=A;表示a为A的引用,也叫别名,两者其实是一个东西。引用在其声明时被初始化。用在变量前,如 int A;int*a=表示取地址。
2、这是为了使有些指针要想被其它函数调用,但又不希望由于失误被其它函数意外更改而设置的。如果你本意就是要做指针的更改,那当然就别加const了。
3、函数传递的是数组的首地址,即a[0]的地址,而不是把整个地址都传过去,因为有首地址,只要往下寻找就能遍历整个数组了。
4、而函数中传递的是变量的拷贝,比如指针传递的就是他保存的地址 如果在函数中对他保存的地址改掉,那么是不影响主函数中的变量的 错误的原因是scanf中是用英文的逗号,而你输入的是中文的逗号,切换输入法就可以了。
5、还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。
用c语言编程时,要多用形参还是指针啊?
1、形参在函数定义时表示的一种占位符,实参就是里面存有实际变量值或者常量,函数调用时,实参值会自动传递给形参变量。指针比较复杂了。是变量的地址,如果参数类型是指针类型,则必须把实参变量的地址传递过去。
2、什么时候都可以用指针,因为用指针的效率比用变量高。当一个函数要返回1个以上的运算结果时,就必须用指针,因为一个函数只能返回一个值,更多的得用指针“带回”。
3、当需要通过地址访问时,需声明为指针。例如,需要实现地址传递的函数形参要声明为指针。
4、二维数组实际可以声明成指向指针的指针。这样在接受形参的时候,就可以用一个双重指针来接受。
5、在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整形变量a。接下来的第3句中,指针ptr被加了1,编译器是这样处理的:它把指针ptr的值加上了sizeof(int),在32位程序中,是被加上了4。
6、int *(*ptr)[4]; //指针所指向的的类型是 int *()[4] 在指针的算术运算中,指针所指向的类型有很大的作用。 指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。
关于c语言指针形参和c语言指针做形参的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。