實驗11 指標的基礎應用

2022-07-19 04:57:09 字數 1182 閱讀 9749

1.本次課學到的知識點:

(1)指標是c語言中非常重要的概念,使用指標可以對複雜資料進行處理,能對計算機的記憶體分配進行控制,在函式呼叫中使用指標還可以返回多個值。

(2)指標訪問記憶體和操縱位址,是通過變數的位址進行操控。

(4)指標變數定義:

型別名  *指標變數名;

型別名指定指標變數所指向的變數的型別,必須是有效資料型別:int,float,char等。

(5)定義多個指標變數時,每乙個指標變數前都必須加*。

不同型別指標變數所佔的記憶體空間大小相同。

(6)指標的基本運算:

2,賦值運算:指標被定義並賦值後,就可以如同其他型別變數一樣進行賦值變數。

(7)氣泡排序:每一次迴圈都將當前最大元素「冒泡」到合適位置。

2. 實驗過程中遇到的問題及解決方法:

(1)對指標還不太理解,做2,3,4題時有些茫然。

(2)看書反覆理解,和117同學討論,學習了第3第4道題,第2題還有待解決.

3. 實驗心得體會及本章學習總結:

開始學指標,一下子感覺到難度上公升了,尤其指標和位址的概念比較抽象,不太能理解,概念和程式的架構還不太清楚。

4. 幾個問題的思考與回答:

(1)兩個相同型別的指標變數能不能相加?為什麼?

不能。因為指標變數是一種特殊的變數,指標變數的值存放的是所指向變數的位址,兩個地 址相加並不能保證結果為乙個有效的位址值,因而在c 語言中指標變數相加是非法的。 

(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個sw...

實驗11 指標的基礎應用

1.本次課學習到的知識點 1 密碼開鎖 引入指標的概念和主要知識點,分析了密碼開鎖的過程來說明變數 記憶體單元和位址之間的關係,從而引入指標的基本概念,介紹了指標的基本運算以及指標變數的初始化。2 通過例子 角色互換 引入指標作為函式引數的用途和用法,區分按值呼叫和引用呼叫 3 通過示例 氣泡排序 ...