c變數

變數的類型和作用域

在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

Tags: