如何将一维数组作为函数形参来使用
[09-12 18:31:35] 来源:http://www.88dzw.com EDA/PLD 阅读:8317次
文章摘要:void func2(int *arr){}对于第一种还可以写成void func1(int arr[100]){},在形参中其实不需要指定数组的大小,因为其实在这几个函数在函数调用时传入的只是一个该数组的指针,想要确定几行几列的话还需要另外定义参数进行传入.如果在使用该指针的过程中不清楚原数组的范围,指针很容易就越界,内存也就溢出了。当用数组名作函数参数时,形参数组就可以从实参数组那里得到起始地址后,形参数组就和实参数组共占同一段内存单元,从而在调用函数期间,如果改变了形参数组的值,也就该变了实参数组的值。最后要补充一点,也就是上次我们学员问我的一个问题,作为形参int arr[]和int
如何将一维数组作为函数形参来使用,标签:eda技术,eda技术实用教程,http://www.88dzw.comvoid func2(int *arr){}
对于第一种还可以写成void func1(int arr[100]){},在形参中其实不需要指定数组的大小,因为其实在这几个函数在函数调用时传入的只是一个该数组的指针,想要确定几行几列的话还需要另外定义参数进行传入.如果在使用该指针的过程中不清楚原数组的范围,指针很容易就越界,内存也就溢出了。
当用数组名作函数参数时,形参数组就可以从实参数组那里得到起始地址后,形参数组就和实参数组共占同一段内存单元,从而在调用函数期间,如果改变了形参数组的值,也就该变了实参数组的值。
最后要补充一点,也就是上次我们学员问我的一个问题,作为形参int arr[]和int *arr有什么区别。在本质上,我们看通过程序,貌似真的没有区别,虽然arr[]是作为数组传递进去,但是我们也可以修改arr的指向,而作为实参的数组的a却不能使其加一。我们都知道函数之间的参数传递有:复制传递方式、地址传递方式、全局变量。
那么姑且就将void func1(int arr[])最为函数按复制传递的方式,而void func2(int *arr)作为其地址传递的方式。而复制传递方式与数组的指针传递方式是完全相同,只是形参的说明形式不同而已。调用函数将实参数组传递给被调用函数形参,形参接收是实参的地址。不论哪种方式,被调用函数里对形参数组的操作都会影响调用函数里的实参数组。
“本文由www.88dzw.com提供”
Tag:EDA/PLD,eda技术,eda技术实用教程,EDA/PLD
- 上一篇:C++虚函数
《如何将一维数组作为函数形参来使用》相关文章
- › 如何将一维数组作为函数形参来使用
- 在百度中搜索相关文章:如何将一维数组作为函数形参来使用
- 在谷歌中搜索相关文章:如何将一维数组作为函数形参来使用
- 在soso中搜索相关文章:如何将一维数组作为函数形参来使用
- 在搜狗中搜索相关文章:如何将一维数组作为函数形参来使用
分类导航
最新更新