c和指標 學習筆記 (新知識)

2021-06-07 17:17:27 字數 1487 閱讀 6593

(p41,,3.6節)鏈結屬性

(p43,3.7節)變數的儲存型別,有3個地方可以用於儲存變數:普通記憶體、執行時堆疊、硬體暫存器。

靜態變數(static):**塊外部宣告的變數,總是儲存於靜態內純中(不屬於堆疊記憶體),在程式執行前建立,在程式整個執行過程中始終存在。

自動變數(automatic):**塊內宣告的變數,儲存於堆疊中,**塊內預設情況下宣告的就是自動的,在程式執行到宣告自動變數的**塊,自動變數才被建立,當程式執行流離開該**塊時,自動變數自動銷毀,若再次使用,其堆疊位置可能改變。

碼塊內宣告的變數,若加上關鍵字static,那就從static變成auto,在程式整個執行過程中始終存在,但作用域還在**段內部。

暫存器變數:(register)訪問效率最高的可設為~,但有利有弊。

(5.1.5)sizeof判斷它的操作符的型別程度,以位元組為單位,sizeof(int),

sizeof(x),字元常量的長度是1個位元組,陣列名,返回陣列的長度。

(p92,6.1節)儘管1字包含了4個位元組,它仍然只有乙個位址,至於它的位址是最左邊的那個位元組的位址還是最右邊的那個位元組的位址,不同的機器有不同的規定。

(6.2節)不能簡單地通過檢查乙個值的位來判斷它的型別,為了判斷它的值及值的型別,必須判斷程式中這個值的使用方法(整形算術指令、浮點型指令)

(6.6節)null指標,(6.7)再讀

(6.9)指標常量

*100=25;(錯誤的)*只能作用於指標型別表示式

*(int*)100=25;//強制型別轉化,把100從「整形」轉化為「指向整形的指標」,但不常用

(6.13)指標運算

1)算術運算:(a)指標(+/-)整數

(b)指標-指標:當兩個指標都指向同乙個陣列中的元素時,才允許乙個指標減去另乙個指標,結果是一種有符號整形型別,值是兩個指標在記憶體中的距離,以陣列元素的長度為單位,對任何並非指向陣列元素的指標執行算術運算都是非法的,,也就是指標已超出了陣列的範圍。

2)關係運算:當兩個指標都指向同乙個陣列中的元素時,可以對兩個指標值進行比較,< <= > >=

(8.1.1)int b[10],在c中,幾乎所有使用陣列名的表示式,陣列名的值都是乙個指標常量,也是陣列第1個元素的位址,其型別是「指向int的常量指標」,,但陣列不是指標,只有陣列名在表示式中使用時,編譯器才會為它產生乙個指標常量(不是指標變數)。只有兩種情況下,數陣列名不能用指標常量來表示,sizeof(b)和&b時,前者返回整個陣列的長度,後者取位址。

(8.2.4))(8.3)再看

(10.1)

struct ******

x,y[20],*z; //注意分號

struct complex

struct comple comp;

comp.sa[4].a; //結構體裡的陣列元素本身也是結構體,

(10.1.5)結構體的自引用 再看

c語言迴圈問題:for,while,do...while使用的優劣,使用情況

左值和右值

指標常量

C 新知識點筆記

定義了 cin cout cerr 和 clog 物件,分別對應於標準輸入流 標準輸出流 非緩衝標準錯誤流和緩衝標準錯誤流。cout value of str is str endl cin name signed unsigned 在計算機中,可以區分正負型別的數,成為 有符號數 signed 無...

新知識和教程儲備 機器學習

tensorflow是用於機器學習的端到端開源平台。它具有工具,庫和 社群資源的全面,靈活的生態系統 可讓研究人員推動ml領域的最新發展,並使開發人員輕鬆構建和部署ml支援的應用程式。tensorflow最初是由google機器智慧型研究組織內google brain團隊的研究人員和工程師開發的,用...

學習新知識的方法

先了解知識的背景,然後了解該知識要解決的問題,最後了解知識的目的。知識的背景 這個知識產生的原因,是在什麼情況下產生的,這個知識產生之後,問題解決了多少,解決到什麼程度。舉例 泰勒公式的目的就是為了用多項式更好地擬合複雜函式,使得複雜函式可以做更多的事情。學到的知識要去實踐,才能對其精髓體會更深。先...