外贸网

  • 首页
  • 指针变量能只能作为函数的形参不可以作函数的实参对还是错

    作者:媒体   更新日期:2024.05.19

    错,指针变量既可以作为函数的形参,也可以作函数的实参。

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

    数组名就是数组的首地址,实参向形参传递数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。这就好像同一件物品有两个彼此不同的名称一样。同样,指针变量的值也是地址,数组指针变量的值即为数组的首地址,当然也可以作为函数的参数使用。

    指针作为实参,指针作为形参:

    扩展资料:

    在c语言中实参和形参之间的数据传输是单向的“值传递”方式,也就是实参可以影响形参,而形参不能影响实参。指针变量作为参数也不例外,但是可以改变实参指针变量所指向的变量的值。

    指针实质是一个内存地址,这个内存地址就是指针的指向地址,这个地址及其以后的地址中的内容就是我们说的指针指向的内容。函数在传递参数时传递的一定是形参。

    参考资料来源:百度百科-指针变量



    错。

    只是要不然只有形参而没有实参的话,函数传参数没有用。但一般函数要用指针时会用引用的。

    #include <stdio.h>

    int add(int x[])//这里的数组即变成指针了

    {

    return x[0]+x[1];

    }

    int main()

    {

    int i[]={1,2};

    printf("%d
    ",add(i));

    return 0;

    }

    扩展资料:

    存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。

    举例:int a = 68 ,系统为变量a分配的首地址为0X065FDF4H,声明空指针long *p = NULL,p=&a是存放变量a地址的指针变量,即p=&a中存放的值为0x065FDF4H(a的值为68,&a的值为0x065FDF4H)。

    对变量a的访问有两种方式:一是直接按地址0x065FDF4H找到a的存储单元,从而对变量a进行访问;二是按系统为p=&a分配的地址先找到p=&a,然后根据p,&a的值(即变量a地址0x065FDF4H)找到变量a在内存中的存储单元,从而对变量a进行访问。对于前一种访问方式称为直接访问方式,后一种访问方式称为间接访问方式。

    参考资料来源:百度百科-指针变量



    判断:指针变量只可以是函数的形参,不可以为函数的实参

    不对吧,只是要不然只有形参而没有实参的话,函数传参数还有什么用啊。但一般函数要用指针时会用引用的。

    因为指针是作为参数传递给函数的,传递的是指针指向的值。其本身并没有传递给函数。

    指针变量能只能作为函数的形参不可以作函数的实参对还是错
    答:错。只是要不然只有形参而没有实参的话,函数传参数没有用。但一般函数要用指针时会用引用的。include <stdio.h> int add(int x[])//这里的数组即变成指针了 { return x[0]+x[1];} int main(){ int i[]={1,2};printf("%d\n",add(i));return 0;} ...

    在c语言中,指针作为函数参数,形参只能传递值,而不能传递地址,是怎么回 ...
    答:C语言中,函数参数只能传值。与传值对应的是传引用,C语言不支持函数参数传引用,C++语言才支持。C++传引用函数:void foo(int& a) { a = 3; } 假如a = 2,执行foo(a)后,a = 3。--- C语言可以模拟传引用,方法是通过指针来实现:void foo2(int* ap) { *ap = 3; } 假如a = 2...

    C++,const型指针变量做形参实参变量的问题
    答:1、允许形参和实参都是const型的指针变量 2、允许形参和实参都是非const型的指针变量 3、允许形参是const型指针变量,而实参是非const型指针变量 4、不允许形参是非const型的指针变量,而实参是const型的指针变量。(原因在于指向非const型变量的指针变量只能指向非const的对象)你的3、4的情况是一样的...

    结构体变量的指针能不能做函数形式参数?
    答:结构体变量的指针是不能做函数形式参数的,因为如果结构体变量的指针,作为函数形式参数,那么有些事情可能就不成立了,如果这些事情不成立的话,也就是结构体变量的指针,做了函数形式参数,是没有任何意义的。

    c语言题目,求详细解答啊!在线等
    答:C语言规定,被调用函数中没有return语句的话,调用函数后没有返回值,本例中为什么n的值发生的变化呢?这要归功于指针变量,因为指针变量传的是地址。C语言中有一规定函数调用过程中值的传递为单向传递,即只能由实参传向形参。只有使用指针变量作为形参,才能达到传值的目的,而本例即属于此。

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

    C语言中函数实参变量用指针时, 形参变量也必须用指针? 判断对错 请举 ...
    答:错了。书上原文是尽量 指针可以用数组来接收 不信你运行下以下代码

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

    C语言问题 函数中形参若为普通变量,则调用时对应位置上的实参可以是指针...
    答:不一定!在调用的函数中,只有当出现“ *p,或者是p->成员变量 "进行赋值时,才是改变的原本变量的值。比如void fun(int *p,int *r){ int *temp;temp=p;p=r;r=temp;} //貌似是指针做形参,但是p,r所指代的值交换了么?没有,因为这只是对指针本身来回折腾的,压根就没改变指针所指...

    C语言中,指针变量可以scanf函数的参数吗?为什么可以做或不可以做,如下...
    答:可以做。你自己可以查看scanf函数定义:The scanf() family of functions scans input according to format as described below. This format may contain conversion specifications;the results from such conversions, if any, are stored in the locations pointed to by the "pointer" ...