课程
/后端开发
/C++
/趣味 C++ 入门
为什么不能像上节课一样使用址传递?
2021-08-31
源自:趣味 C++ 入门 7-4
正在回答
写错了,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++ 入门,开启趣味学习之旅,揭开 C++ 的神秘面纱,让你不再望而生畏。
1 回答递归函数,可以没有返回值吗?
3 回答可以这么写吗
1 回答请问学的这些语法 C语言也可以用吗 这些好像基础通用吧
1 回答请问这里为什么可以不需要#include<stdio.h>呢?
1 回答为什么我试了一下不强制转换也可以运行呢?