1. 程式人生 > >c理解提高(2)變數的本質

c理解提高(2)變數的本質

變數本質分析


變數概念

  • 概念:既能讀又能寫的記憶體物件,稱為變數;若一旦初始化後不能修改的物件則稱為常量。
  •  變數定義形式:     型別  識別符號, 識別符號, … , 識別符號 ;
  • 例如:

         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;

}