外贸网

  • 首页
  • 为什么C语言中的二级指针作为函数形参的时候与C++中的引用功能一样? C语言中为什么函数形参中二级指针和一级指针指输出的结果一样

    作者:媒体   更新日期:2024.06.02
    所谓的功能一样是说都可以改变实参指针的值,引用本来就是指针的特殊应用,而写法又比指针的简洁。
    C++中同样还可以用二级指针,不过写起来处处都是 形如 (*p) 这样的代码看起来不大美观,而且很容易漏写*号而出错

    每天签到要答一题,无聊灌个水了

    都能修改指针本身的内容吗???

    怎么一样了?能否举个例子?

    C语言中为什么函数形参中二级指针和一级指针指输出的结果一样

    兄弟,那个不是一级指针,那是指针数组
    指针数组作为函数形参时会自动转换为指针的指针,也就是你说的二级指针

    char **p=book;从这一行也能证明我说的,自动转换

    特别注意:它只会转换数组的最内层(我有点分不清内外)
    int arr[2][6];
    int (*aa)[6] = arr;//对
    //int *aa1[6] = arr;//错
    //int (*aa2)[2] = arr;//错
    //int (*aa3)[] = arr;//错
    //int *aa4 = arr;//错
    //int **aa5 = arr;//错

    node** finloc(node* head,int X)
    {
    node* loc=head;
    while(loc->data<X)
    loc=loc->next;
    return &loc;
    }

    你把一个局部变量的地址返回?懂了没?

    为什么C语言中的二级指针作为函数形参的时候与C++中的引用功能一样?
    答:所谓的功能一样是说都可以改变实参指针的值,引用本来就是指针的特殊应用,而写法又比指针的简洁。C++中同样还可以用二级指针,不过写起来处处都是 形如 (*p) 这样的代码看起来不大美观,而且很容易漏写*号而出错 每天签到要答一题,无聊灌个水了 ...

    函数形参什么时候用二级指针 ,什么时候用一级指针
    答:用二级指针作为函数参数,有两种典型情况:1.需要传递一级指针的数组时:例如标准C的main函数:int main(int argc, char*[] argv),数组最高维可以退化,char*[] argv等价于char** argv。这里argv代表命令行参数数组。2.需要对传入的一级指针进行修改时:例如:void alloc_new_char_array(int n, ...

    二级指针作为函数参数
    答:首先p和*结合,表时变量p是一个指针,然后再与[]结合,表明这个指针指向的是一个带有126个元素的一维数组的地址。

    C语言中,为什么通过函数为指针变量分配内存,形参一定要是二级指针?
    答:我感觉没有必要用二级指针,我们的目的主要是为了让主函数中的指针的地址指向一个空内存。我们完全可以通过传递这个指针的地址到子函数中,然后给这个指针的地址分配内存就可以了。例如下面这个程序就是正确的。根本没有必要使用到二级指针呀。

    在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语言(七)---指针(二)
    答:指针数组:int*p[3];函数名:可以思考下为什么要把一个函数的地址作为参数传递给另一个函数,要知道在C语言中,一个函数内部是可以直接调用其他函数的,既然可以直接调用,为什么还要用这么麻烦的办法去把函数当做参数来传递呢。下面我举个例子:我们设计一个函数fun()来计算某个精确值,不同的人计算的...

    指向二维数组的指针作函数参数
    答:名称用来指称(denote)实体(ISO C中没有明确地定义这个概念,但是可以参照ISO C++的定义,把对象、函数等作为实体的外延,区别作为名称的标识符),是通过语言实现指称语义的重要成分,但不是语义的组成部分(C语言编译后的目标程序中可以不储存这些名称来实现操作语义,也体现了这点)。实体本身即是指称...

    c语言中,要用函数直接调用就好啦。为什么还要用指针???
    答:如果你写一个系统的某一层,不知道其他层的内部情况,这时候用指针传递函数最合适。还有,结构体里包含指向函数的指针,就相当于一个简单的“对象”了。看看linux内核里各接口的定义。函数指针的使用使的内核可以很多人同时开发,并且大家只需要知道相应的接口就可以了。这套框架,离不开函数指针。

    C语言 写一个函数交换两个数的值,为什么一定要用指针?
    答:fun2(),看似的确使用了指针,但还是失败,因为这里是将aa和bb的地址给交换了,而并没有交换aa和bb的值。在这里由于未给c赋值,c中并没有确定的值,c中的值是不可预见的。此时c可能指向一个未知的存储单元。而严重的情况是,该单元的数据可能是有用的,因此fun2()不但没有实现两个数的交换,...

    标题c语言中为什么要使用函数指针,直接调用函数不就可以吗?
    答:函数指针一般用来做回调的,一般多线程用的多,因为线程之间,栈空间不一样。还有就是封装好的程序,做回调的,比如我写了一段程序,想要给你用,如果我内部没有回调,你就要改动我的程序。但我这样写,我的执行过程是123,二这个步骤,我用函数指针封装起来,如果等于空就不执行,然后你来用,只需要...