变量的类型和作用域
在main函数内部是函数作用域
int main(void){
auto int value = 0;
}
auto 表示的是变量的类型。自动变量 内存就会自动分配,退出作用域 内存就会自动销毁。
下面的是块作用域
{
auto int va = 0;
}
double Add(double a,double b);
静态变量
1 作用域是全局的,内存不会因函数退出而销毁
2 初值(如果是int)默认是0
自动变量
1 函数、块作用域 随着函数和块退出而销毁
2 没有默认的初始值,所以一定要初始化。
递归
汉诺塔问题
首先要了解定义
第一步是:
第二步是:
最后一个:
void Move(int n,char src,char dest,char tmp){
if (n==0)return;
else if (n==1)printf("%c -->%c\n",src,dest);
else{
Move(n-1,src,tmp,dest);
Move(1,src,dest,tmp);
Move(n-1,tmp,dest,src);
}
}
int main() {
printf("Hello, World!\n");
Move(3,'a','b','c');
return 0;
}
结果
Hello, World!
a -->b
a -->c
b -->c
a -->b
c -->a
c -->b
a -->b