慕虎3145518
2021-08-31 03:30
为什么不能像上节课一样使用址传递?
写错了,main函数里应该是wow(&n),传一个地址。因为你函数定义的时候,参数是指针,所以要传地址,而你传的*a,a是变量不是指针,*a没有任何意义
传指调用是要再函数外部改变参数内部的值,而本节课只是在所调用的函数内进行递归计算,并不需要传指,传了指又没什么意义,为什么要传指呢?计算好后返回一个值给主函数不就ok了嘛~传入相对应的参数给所调用的函数里,并计算返回这个计算的值,不过递归也有传指的时候,根据情况选择的!!!
估计是没有返回值,没办法弄
#include <stdio.h>int factorial(const int *n) { if (*n <= 1) return 1; else { int next = *n - 1; return *n * factorial(&next); }}int main(){ int n=5; int result= factorial(&n); printf("factorail(%d)=%d\n",n,result);}
可以地址传递
趣味 C++ 入门
31203 学习 · 189 问题
相似问题