大家好,今天小编关注到一个比较有意思的话题,就是关于c语言数组作为形参的问题,于是小编就整理了4个相关介绍c语言数组作为形参的解答,让我们一起看看吧。
c语言:一个空数组作为型参,如何在函数中对其赋值?
数组作为参数是按地址传递的 数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送, 也就是说把实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
在c语言中的变量声明中,实参传递给形参用数组怎么表示?
在C语言中,用数组名作为函数调用时的实参,实际上传递给形参的是首地址。 因为数组名传递的是数组的地址也就是第一个元素的地址。例如: a[3]这个数组,3指个数,a[0]指第一个元素,全部元素指a[0]~a[2];那数组名a规定的就是首地址。
c语言中形参数组和实参数组是什么意思?
简单来说,形式参数(形参)就是形式上的参数,没有确定值,而实际参数(实参)是实际存在的,已经确定的参数,常量,变量,表达式,都是实参。
最简单的例子:
int change(int b,int c){…}/*b和c就是形参,这里的b和c可以是任意一个值传递,为形参*/
int main() { change(1,2); …/*这样就是把实参值传递给形参,1和2就是实参*/ }
为什么二维数组做形参时的第二维?
不清楚你学指针没,如果学了这个问题就好说了.二维数组是一个二级指针,而一维数组就是一个普通的指针.二维数组其实也是一维的,只是它的一个元素还是一个数组.而一维数组要得到一个元素可以这样:*(p+i) 这样是完全等价于p[i]的.而二维数组想要得到它其中的一个元素就要这样: int i[10][3]; i[1][2] == *(i + 10*1 + 2); 但如果说这个数组是int i[10][30];就不能通用上面的公式,所以如果得到一个二维数组的元素就要由类型来定.如上代码,i是一个int *[3]类型的.
到此,以上就是小编对于c语言数组作为形参的问题就介绍到这了,希望介绍关于c语言数组作为形参的4点解答对大家有用。