c理解提高(2)變數的本質
阿新 • • 發佈:2018-10-31
變數本質分析
變數概念
- 概念:既能讀又能寫的記憶體物件,稱為變數;若一旦初始化後不能修改的物件則稱為常量。
- 變數定義形式: 型別 識別符號, 識別符號, … , 識別符號 ;
- 例如:
int x ;
int wordCut , Radius , Height ;
double FlightTime , Mileage , Speed ;
變數本質
1、程式通過變數來申請和命名記憶體空間 int a = 0
2、通過變數名訪問記憶體空間
(一段連續)記憶體空間的別名(是一個門牌號)
3、修改變數有幾種方法?
(1)直接
(2)間接。記憶體有地址編號,拿到地址編號也可以修改記憶體
(3)記憶體空間可以再取給別名嗎?
4、資料型別和變數的關係
- 通過資料型別定義變數
5、總結及思考題
1) 對記憶體,可讀可寫;
2) 通過變數往記憶體讀寫資料;
3)不是向變數讀寫資料,而是向變數所代表的記憶體空間中寫資料。問:變數跑哪去了?
思考1:變數三要素(名稱、大小、作用域),變數的生命週期?
思考2:C++編譯器是如何管理函式1,函式2變數之間的關係的?
====》引出兩個重要話題:
記憶體四區模型
函式呼叫模型
重要實驗:
int main()
{
//2種方法,通過變數直接操作記憶體
// 通過記憶體編號操作記憶體
int i = 0;
printf("&i:%d\n", &i);
*((int *)(1245024)) = 10;
printf("i:%d", i);
printf("hello....\n");
getchar();
return 0;
}