局部變量
定義:在代碼塊內部定義的變量
作用域:從定義變量的那一行開始,一直到代碼塊結束
生命周期:從定義變量的那一行開始分配存儲空間,代碼塊結束後,就會被回收
沒有默認的初始值
全局變量
定義:在函數外面定義的變量
作用域:從定義變量的那一行開始,一直到文件結尾(能被後面的所有函數共享)
生命周期:程序一啟動,就會分配存儲空間,程序退出時才會被銷毀
默認初始值是0
全局變量分外部變量和內部變量
外部變量:定義的變量能被本文件和其他文件訪問,默認情況下所有全局變量都是外部變量
內部變量:定義的變量只能被本文件訪問,不能被其他文件訪問
內部函數:定義的函數只能被本文件范文,其他文件不能訪問
允許不同文件中有同名的內部函數
外部函數:定義的函數的能被其他文件訪問
默認情況下所有函數都是外部函數
不允許有同名的外部函數
static和extern
對函數和變量都有效
static定義和聲明內部函數,定義一個內部變量
static修飾局部變量,延長局部變量的生命周期,程序結束時才會被銷毀,並沒有改變局部變量的作用域
extern定義和聲明外部函數,聲明一個外部變量