zmm5211314 2022-10-28 10:15 采纳率: 87.5%
浏览 40
已结题

C语言函数问题可以递归定义吗

img


这个问题中为什么A是错误的C为什么是正确的 函数中不是不可以递归定义吗

  • 写回答

3条回答 默认 最新

  • liranke 2022-10-28 10:47
    关注

    答案是C,当然可以递归定义,递归定义就是递归函数的定义。
    对于A,说法是正确的。如果以数组名作为参数,其实传递的就是地址,就是实参的地址。所以,该地址的内容变化,实参数据当然也变了,因为操作的同一个地址。
    例如:
    【测试代码】:

    #include <stdio.h>
    #include <unistd.h>
    
    void add(int x[],int len){
        x[0] = 1;
        x[1] =2;
        printf("x addr=%p\n",x);
        len = 6;
        printf("[add] len = %d\n",len);
        //return x[0]+ x[1];
    }
    
    int main() {
        int data[2] = {3,5};
        int len = 1;
        printf("函数调用前=====\n");
        printf("data addr=%p\n",data);
    
        printf("data[0]: %d\n",data[0]);
        printf("data[1]: %d\n",data[1]);
    
        //int res = add(data,len);
        add(data,len);
        //printf("add res: %d\n",res);
    
        printf("函数调用后=====\n");
    
        printf("data[0]: %d\n",data[0]);
        printf("data[1]: %d\n",data[1]);
    
        printf("[main] len  =%d\n",len);
    
        
        return 0;
    }
    
    

    【运行结果】:
    函数调用前=====
    data addr=0x7ffeed2258c0
    data[0]: 3
    data[1]: 5
    x addr=0x7ffeed2258c0
    [add] len = 6
    函数调用后=====
    data[0]: 1
    data[1]: 2
    [main] len =1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 已采纳回答 10月28日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测