小白求问简单问题,大変ですね
#include<stdio.h> #include<iostream> using namespace std; void exchange(int* a,int* b) { int temp =*b; *b=*a; *a=temp; } int multi(int n) { int num; if(n==1) { return 1; } num=n*multi(n-1); printf("打印出来为%d\n",num); } int main(int argc,char**argv) { int a=9; int b=99; exchange(&a,&b); printf("a:%d,b:%d\n",a,b); multi(5); return 0; }
这样运行为
a:99,b:9
打印出来为2
打印出来为36
打印出来为52
打印出来为65
而这样
#include<stdio.h> #include<iostream> using namespace std; void exchange(int* a,int* b) { int temp =*b; *b=*a; *a=temp; } int multi(int n) { int num; if(n==1) { return 1; } num=n*multi(n-1); } int main(int argc,char**argv) { int a=9; int b=99; exchange(&a,&b); printf("a:%d,b:%d",a,b); cout<<endl<<multi(5); return 0; }
运行为
a:99,b:9
120
这是为什么呢?😭