同學們終於學到最有意思的東西:指標了。有人說指標是c語言的靈魂。雖然有點誇大,但是事實的確是如此。很多的時候,使用指標,會讓過程變得簡潔和精巧。這個在以後同學們深入學習使用c語言進行程式設計的時候就可以理解了。
下面還是按照往常的樣子,進行本次知識點的總結:
// 宣告
int *pa; // 宣告乙個名為 p 的指標,需要注意的是,* 號本身僅僅表示 p 是乙個指標變數
int a;
// 定義 == 賦值
p = &a; // 將 p 的記憶體空間中的資料定義為 a 的位址
// 宣告且定義
int b;
int *pb = &b;
// 有乙個函式,引數是乙個指標
int *pa = &a;
int *pb = &b;
int func(int *a,int*b,int *c,int *d);
func(pa,pb,&a,&b); // 函式呼叫時傳入的實參
// 陣列和指標的關係
int a[10];
int *parr = a; // 陣列名就是陣列的位址,也是陣列元素 0 的位址
在 c 語言中,陣列和指標的界限並不明顯,比如在向函式傳參的時候,即使你寫成
int func(int a[3]){} // 甚至這裡寫下了陣列的長度
但是實際上這裡編譯器會視作你傳遞進去int *a
的指標,對於乙個指標而言,並不能有效的知道它的長度。這就是為什麼多數情況下看到的函式,一旦傳遞入乙個指標作為陣列的首位址,都會跟隨乙個int
型別的數值作為長度。
指標,務必需要注意,一定要先初始化即定義/賦值
後再使用,否則,編譯器無法知道你到底想要操作的是哪塊記憶體區域:
int *p;
*p = 0; // error
不過萬幸的是,大部分類似於這樣的錯誤,在執行的時候,都會出現非常明顯的錯誤。但是同學們依舊應該對此情況多多用心。
談到這裡,忽然想要跟大家聊聊野指標,可是忽然想到大家都還沒有學習過諸如malloc
這樣的函式,那還是暫時作罷吧。不過類似上面的p
就是乙個野指標(即它沒有指向乙個明確的記憶體區域)。
編號學號
cnblogs暱稱
**總結
附加題加權得分備註1
160809401
付胤50
8564
總結錯別字較多,**完成度低
2160809402
張博洋-100
-100
-100
總結不是總結,**不是**
3160809403
董宇豪90
6078
總結寫的過少,一些必要的點沒有寫到
4160809404
朱念齊-100
-100
-100
沒有寫5
160809405
蘆彥儒-100
-100
-100
沒有寫6
160809406
吳澤軒0
7160809407
leonardo#*
-100
-100
-100
8160809408
il.linker
100100
1009
160809409
gdcs16_409
9595
9510
160809410
無聲的夢
10040
11160809411
劉悅-100
-100
-100
12160809412
張磊90
3613
160809413
王洪燁110
90102
注意到檢查傳入函式的指標是否為空
14160809414
紀柏如110
44「說明符」這一概念很有意思
15160809415
閆墨傑110
100106
16160809416
史航110
95104
終於有人用強制型別轉換了
17160809417
狂歡90
-100
14沒有寫總結
18160809418
水母jam
-100
-100
-100
19160809419
朱鈺鋮-100
-100
-100
20160809420
虞小生60
9072
21160809421
飲冰少年1
100-100
2022
160809422023
160809423
李筱-100
-100
-100
24160809424
xzy!
6590
7525
160809425
剎那神華
-100
100-20
26160809426
zlt.santorini'ly
9595
95總結細緻
27160809427
江超民95
9093
28160809428
zxkai
95-100
1729
160809429
王鑫沐95
9595
30160809430
茉妍95
9595
31160809431
茉莉雨95
110101
第十次作業總結
實驗1.計算兩數的和與差 實驗2.利用指標找最大值 includeint main void findmax int px,int py,int pmax else pmax px 實驗3.拆分實數的整數與小數部分 一.知識點 1.位址和指標 在程式執行過程中,變數或者程式 被儲存在以位元組為單位組...
第十次作業
linux網路服務 osi七層模型 物理層 傳輸介質,組網 資料鏈路層 mac位址定址,資料成幀,資料檢測,重發apr 網路層 將網路位址轉化為實體地址,網路位址定址,路由 ip協議 傳輸層 提供端對端的資料交換,連線,埠 會話層 提供點對點的連線 表示層 資料格式化 應用層 應用程式,服務 tcp...
第十次作業
1.將以下文法消除左遞迴,分析符號串 i i i e e t t t t f f f e i 解 文法改寫 e te e te t ft t ft f e i first集 first e first e first t first t first f follow集 follow e follow...