C语言中,调用函数的实参是数组名,被调用函数的形参可不可以是指针

作者&投稿:甄茅 (若有异议请与网页底部的电邮联系)
C语言中数组名作为实参传给被调用的函数时,形参获得的是什么~

C语言中数组名作为实参传给被调用的函数时,形参获得的是数组的起始地址。
还是用例子说话吧。
#include
int *arry(int *a)
{
int *b;
b = a;
int i;
for(i=0;i<5;i++)
{
printf("%d",a[i]);
} return b;
}
int main()
{
int a[5] = {1,2,3,4,5};
int *c;
int i;
c = arry(a);
for(i=0;i<5;i++)
{
printf("%d",c[i]);
}
}
主要是通过指针把数组,例如main里面的a的地址传入arry函数,然后在arry函数中用一个兼容类型的指针接收地址,然后就可以再这个指针下的地址操作地址上面的数据了。
arry返回的时候也是返回一个指针(地址)。

举例:
void f(int *p)
{
}
int arr[]={1,2,3};
因为函数f的形参是一个类型为int的指针变量,所以调用f时,可以将数组名arr作为实参传给形参p。即可以这样调用:f(arr);

可以。是数组也行,如:
void f1(int a[])
{

}
void f2(int *p)
{

}
int a[]={1,2,3};
f1(a);
f2(a);

不是可不可以,而是必须是指针。


C语言函数调用的三种方式并分别举一例。
1、值传递,创建变量x和y,x的值等于a的值,y的值等于b的值 void Exchg1(int x, int y){ int tmp;tmp=x;x=y;y=tmp;printf(“x=%d,y=%d\/n”,x,y)} void main(){ int a=4,b=6;Exchg1 (a,b) ;printf(“a=%d,b=%d\/n”,a,b)} 2、地址传递,相当于建立了px和py两个...

c语言中怎么调用函数?
函数分为库函数和自定义函数,在调用库函数时只要标明头文件(所谓头文件就是一个东西,里面包括了一些函数各声明之类的,当你要调用它中的函数时就就得先向程序说明你要调用这个文件里的函数,否则有有侵权行为哦)可以在主调函数中调用这个头文件里的所有函数了,例如头文件为#include<stdio.h>你就...

C语言中,是否可以调用其它文件的函数?
可以的。在C语言中,函数调用的方式有多种,在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用,还是自右向左使用。对此,各系统的规定不一定相同。__cdecl调用规则就是C调用规则。按从右至左的顺序压参数入栈,由调用者把参数弹出栈。切记:对于传送...

C语言问题,要求调用函数,在数组list中查找X,若找到就返回相应的下标,否 ...
怎么也没有问题啊?是不是要求修改你程序的错误啊?!我看了一下你的程序,主要问题如下:main函数中,调用函数的时候即 search(list,10,x);这个语句中是不能获得i的值的,因为函数值传递是单向的,不能有形参传递到实参,需要i=search(list,10,x); 即将调用函数的返回值赋给i,这样i才会得到...

C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是什么...
函数只有两种传递方式:1、值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。2、址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。

c语言中main函数中的函数怎么调用函数?
最后的那个分号就是标识着一个语句的结束 如果f有一个整型的参数, 那么需要这样调用:f(1);只是多了一个1, 这个1就是()运算符要复制到f函数的栈中了, 准确地说是复制到它的形参中.如果f有多个参数, 则只需要在每个形参之间打上逗号:f(1, 2, 3);逗号只是用来起分隔作用....

c语言中函数调用有三种方法,能帮忙各举个例子吗?
1、首先在打开的C语言数据库中,输入【#include】,如下图所示。2、然后输入尖括号,如下图所示。3、接下来便可以输入函数库名,如下图所示。4、也可以使用双引号引起来,如下图所示。5、此时,便可以开始使用相应的函数,如下图所示。这样,系统就不会报错了。

c语言的函数调用和嵌套调用有什么区别?
区别:函数的嵌套调用是指在一个C语言函数里面在执行另一个函数,这样通常称为函数的嵌套调用。而函数的递归调用,一般指的是这个C语言函数调用自己本身的函数也就是说调用函数的函数体是一样的,这样称为递归调用。

...是从第一个函数开始执行 B)在C语言程序中,要调用的函数
main函数是程序在有宿主 (hosted)环境(亦即有操作系统)中所指定的入口点。C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。

举Python语言调用库math中函数round()的方法?
在Python中,要调用math库中的round()函数,可以按照以下步骤进行:导入math库:pythonCopy codeimport math使用round()函数进行四舍五入操作:pythonCopy codenumber = 3.7rounded_number = math.round(number)注意:在这个例子中,我们将要四舍五入的数字3.7作为round()函数的参数传递。函数将返回四舍...

壤塘县18751491286: c语言允许数组名作为函数调用的实参吗? -
咸郊复方: 允许的!int a[10]; input( a, 10 ); void input( int a[], int n) { int i; for( i=0;i scanf("%d", &a[i] ); }

壤塘县18751491286: C语言中数组名作为实参传给被调用的函数时,形参获得的是什么 -
咸郊复方: C语言中数组名作为实参传给被调用的函数时,形参获得的是数组的起始地址. 还是用例子说话吧. #include<stdio.h> int *arry(int *a) {int *b;b = a;int i; for(i=0;i<5;i++){printf("%d",a[i]);} return b; } int main() {int a[5] = {1,2,3,4,5};int *c;...

壤塘县18751491286: c语言中数组名作为函数参数 -
咸郊复方: 要将数组长度作为一个参数传给average函数,不能在average函数内部通过int arrLen = sizeof(a) / 4;来计算数组长度.因为float average(float a[10])就相当于float average(float *a) ,所以sizeof(a)恒等于4,sizeof(a) / 4恒等于1.应该这样:float average(float a[10],int arrLen) { float sumSco = 0; for (int i = 0; i < arrLen; i++) { sumSco += a[i]; } return sumSco / arrLen; }

壤塘县18751491286: C语言中,调用函数的实参是数组名,被调用函数的形参可不可以是指针 -
咸郊复方: 可以.是数组也行,如: void f1(int a[]) {} void f2(int *p) {} int a[]={1,2,3}; f1(a); f2(a);

壤塘县18751491286: 关于c语言 当实参是数组名 形参是指针变量时 -
咸郊复方: 在C语言,数组无论作为参数还是返回值,都是以指针形式返回或者传递的.在数组中,数组名字代表的是数组第1个元素的地址.比如如下数组. int a[10] = {1,2,3,4,5,6}; 数组名a,实际上相当于&a[0].所以,当实参是数组名,形参是指针变...

壤塘县18751491286: 调用函数时,实参是一个数组名,则传递给函数的是什么?
咸郊复方: 数组名在C语言里,相当于指向数组的地址的指针

壤塘县18751491286: C语言函数,数组名作为实参,传址问题. -
咸郊复方: a是数组名,也就是数组的首地址,a+1就是a[1]的地址,等价于&a[1].前面加一个星号就是取该地址的值啦,也就是元素a[1]的值.

壤塘县18751491286: c语言 一位数组名做函数实参 -
咸郊复方: *p可以,p[]也可以.只要是同种类型的指针都可以.主要的就这两种变化.还有非主流的,用p[][n]这样的二位数组指针来传递.那么p就是一个行指针,每次++变化移动内存量为n的单位个长度.不过没人会这么用的..同理还有三维数组等等.记住所有C语言传递参数都是传值.你如何使用指针是根据所传参数的形式决定的.需要注意的是,你将数组名传递给*p和p[].那么使用sizeof(p)的结果,不是数组大小,而是指针的长度(32位机器上为4个字节).

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网