C/C++ 變數 生命週期/可視範圍

C/C++ 變數 生命週期/可視範圍

C/C++ 變數 生命週期/可視範圍


資料來源: https://dywang.csie.cyut.edu.tw/dywang/clanguage/node125.html
線上編譯器: https://www.tutorialspoint.com/compile_c_online.php


變數種類

    區域變數 (local variable):生命週期只限函式執行期間,退出函式後即不再有效。 [可視範圍: 函數本身(宣告之後的程式碼)]

    全域變數 (global variable):宣告在函式外,每個函式都可使用此變數。 [可視範圍: 宣告之後的程式碼]
    靜態變數 (static variable):類似區域變數,但靜態變數在編譯時配置固定的記憶體空間,所以即使退出函式,變數的值還是可以保留下來。 [可視範圍: 函數本身(宣告之後的程式碼)]


Code:

#include <stdio.h>

int x, y;//全域變數

void swap(void) {
	int temp;
	temp = x;
	x = y;
	y = temp;
	return;
}

main() {
	printf("Enter TWO integers: \n");
	x=12;y=56;

	printf("Before swap, x = %d, y = %d\n", x, y);
	swap();
	printf("After swap, x = %d, y = %d\n", x, y);
}
/*
Enter TWO integers: 12 56
Before swap, x = 12, y = 56
After swap, x = 56, y = 12
*/


#include <stdio.h>

int increament(void) {
	static int i=0;//靜態變數

	return i++;
}
 
main() {
	printf("i = %d\n", increament());
	printf("i = %d\n", increament());
	printf("i = %d\n", increament());
	printf("i = %d\n", increament());
}
/*
i = 0
i = 1
i = 2
i = 3
*/


發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *