首页 > 技术文章 > c变量

sailorlee11 2020-12-16 22:28 原文

变量的类型和作用域

在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

推荐阅读