微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 有如下程序,求分析一下执行过程

有如下程序,求分析一下执行过程

时间:10-02 整理:3721RD 点击:

#include <stdio.h>

int func(int a)

{

    if (a==0)

    {

       return a;

    }

    printf("%d\n",func(a++/2));

    return a;

}

int main(int argc, char *argv[])

{

    printf("%d",func(7));

    return 0;

}


int arr[] ={6,7,8,9,10};   
int *ptr   =arr;  
*(ptr++)   +=123;  
printf("%d,%d",*ptr,*(++ptr));
这个题目来源于华为的一道C语言笔试题,答案是:8,8。为什么?

我是由你的结果推导出来的,其实这道题考的是printf里面形参的执行顺序,根据你的结果是先执行*(++ptr)再执行*ptr。

你这个叫递归,虽然有“迭代的是人,递归的是神”的说法,但是递归如果控制不好就会堆栈溢出。

我也不明白

我也不知道啊!

堪布懂

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top