1.本次課學習到的知識點:
(1)通過示例"密碼開鎖"引入指標的概念和主要知識點,分析了密碼開鎖的過程來說明變數、記憶體單元和位址之間的關係,從而引入指標的基本概念,介紹了指標的基本運算以及指標變數的初始化。
(2)通過例子"角色互換"引入指標作為函式引數的用途和用法,區分按值呼叫和引用呼叫,分析了3個swap()函式進行對比,最後通過給定的年和天數計算是某年某月某日的例項學習了如何使用指標作為函式引數返回多個值,解決了以前乙個函式最多只能return乙個值的問題。
(3)通過示例"氣泡排序"引入陣列名作為函式引數,重點介紹指標、陣列和位址之間的關係,通過例子說明了指標和陣列可以實現相同的操作。
(4)位址和指標是計算機中的兩個重要概念。
(5)要注意區分記憶體單元的內容的記憶體單元的位址。
(6)在c語言中把這些專門用來存放變數位址的變數稱為「指標變數」,簡稱為指標。
型別名 *指標變數名;
(8)指標宣告符*在定義指標變數時被使用,說明被定義的那個變數是指標。
(9)定義多個指標變數時,每乙個指標變數前面都必須加上*。
2. 實驗過程中遇到的問題及解決方法:
(1)雖然對指標有了了解,但用起來還是不太會,也不太熟練。
(2)通過看書、詢問同學來解決問題。
3. 實驗心得體會及本章學習總結:
本章開始學習指標了,一開始就知道指標是c語言中乙個很重要但又很難的一部分。通過這一堂課的學習,對指標有了一些了解。
4. 幾個問題的思考與回答:
(1)兩個相同型別的指標變數能不能相加?為什麼?
(2)在使用scanf()函式時,輸入引數列表需要使用取位址操作符&,但當引數為字元陣列名時並沒有使用,為什麼?如果在字元陣列名前加上取位址操作符&,會發生什麼?
答:因為字元陣列名的值是乙個特殊的固定位址,可以看作是常量指標,因此不需要再使用取位址符來獲取該陣列的位址。如果在字元陣列名str 前加上取位址操作符&,那麼對其取位址&str 可以看做是這個陣列的第乙個元素的位址,由於陣列位址和陣列第乙個元素的位址相同,所以&str 表示位址值和str 表示的位址值是相等的。對scanf()的變長引數列表的話,編譯器只負責引數傳遞,怎麼解釋後邊的幾個位址的含義,是由前邊的字串確定的。所以使用scanf(「%s」,str)和scanf(「%s」,&str)都能通過編譯且正常執行。
(3)c語言不允許用賦值表示式直接對陣列賦值,為什麼?
答: 因為陣列的陣列名本質上來說相當於乙個指向該陣列的第乙個元素的指標常量,不可以對乙個常量進行賦值,所以不允許用賦值表示式直接對陣列進行賦值。
實驗11 指標的基礎應用
一.本次課學習到的知識點 1.通過示例 氣泡排序 引入陣列名作為函式引數,重點介紹指標 陣列和位址之間的關係,通過例子說明了指標和陣列可以實現相同的操作。2.位址和指標是計算機中的兩個重要概念。3.要注意區分記憶體單元的內容的記憶體單元的位址。4.在c語言中把這些專門用來存放變數位址的變數稱為 指標...
實驗11 指標的基礎應用
1.本次課學習到的知識點 1 密碼開鎖 引入指標的概念和主要知識點,分析了密碼開鎖的過程來說明變數 記憶體單元和位址之間的關係,從而引入指標的基本概念,介紹了指標的基本運算以及指標變數的初始化。2 通過例子 角色互換 引入指標作為函式引數的用途和用法,區分按值呼叫和引用呼叫 3 通過示例 氣泡排序 ...
實驗11 指標的基礎應用
1,本次課學習到的知識點 新名詞的認識,位址和指標,對記憶體單元進行標識編號利用指標實現儲存空間的動態分配。對複雜資料進行處理,能對計算機的記憶體分配進行控制,在函式呼叫中指標還可以返回多個值,為指標宣告符,在定義指標時被使用,說明被定義的那個變數是指標。氣泡排序法,二分法。2.實驗過程中遇到的問題...