2013年3月16日 星期六

Pointer 1_basic

1) 指標可以指定0,NULL,或某個位址
2) & operator為取址運算子(address operator)-會回傳operator address的 一元運算子,不能應用到
      常數、運算式或宣告為register的變數
3) * operatorindirection operator or dereferencing operator(間接或是反參考運算子)-回傳運算元
      所指向的物件的
4) ex:pointer1.c
  - %p: 將記憶體位址以16進制印出
  - &和*是互補的,同時使用的話就是顯示指標內容







5) C語言中所有的引數都是以值進行傳遞
6)
Call by value Call by reference
7)
許多函式需要具有修改呼叫函式內定義之變數的能力,或傳遞一個指向大型物件的指標來
     避免因為call by value所產生的額外負擔。因此C提供simulating call-by-reference的功能
8)
引數加上&來傳遞變數位址,而函式內部用*即可改變變數內容
9)
陣列名稱相當於&array[0]C會自動傳遞陣列的起始位址,所以當陣列是引數時不用加&



















10) const修飾詞:告訴編譯器變數不能被修改
11)
軟工觀點:const 可實現最小權限原則,減少偵錯時間,使程式更容易維護。
12)
函式的參數使用const6種方式,可利用principle of least privilege作為挑選原則。
      <1> a non-constant pointer to non-constant data
                  指向非常數資料的非常數指標
      <2> a constant pointer to non-constant data
                  指向非常數資料的常數指標
      <3> a non-constant pointer to constant data
                  指向常數資料的非常數指標
      <4> a constant pointer to constant data
                  指向常數資料的常數指標

沒有留言:

張貼留言

全國推廣動物認領養平台串聯貼紙

全國推廣動物認領養平台串聯貼紙