程序設計基礎w02-3-chap03-關于“代數思維”的思考討論-_第1頁
程序設計基礎w02-3-chap03-關于“代數思維”的思考討論-_第2頁
程序設計基礎w02-3-chap03-關于“代數思維”的思考討論-_第3頁
程序設計基礎w02-3-chap03-關于“代數思維”的思考討論-_第4頁
程序設計基礎w02-3-chap03-關于“代數思維”的思考討論-_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、整理課件2#include using namespace std;int main() int num; cout num endl; return 0;/ task-1整理課件3如果變量自定義后沒有賦值,則變量的內存單元中的值是一個隨機的數值,在不同的機器上、在不同的環境下,單元的內容是不同的。整理課件關于變量的討論(關于變量的討論(2 2)n變量為什么要指定類型?n類型信息,用來做什么?n不同類型,差別是什么?4#include using namespace std;int main()int a = 2;cout a = a endl;cout a / 4 = a / 4 endl;

2、 / 結果很奇怪!return 0;整理課件n變量為什么要指定類型?n類型信息,用來做什么?n不同類型,差別是什么?5#include using namespace std;int main()float a = 2;cout a = a endl;cout a / 4 = a / 4 endl; / 這次結果正確了!return 0;關于變量的討論(關于變量的討論(2 2)整理課件關于變量的討論(關于變量的討論(2 2)n變量為什么要指定類型?n類型信息,用來做什么?n不同類型,差別是什么?6類型的用途告訴計算機如何操作數據。即:類型“暗示”了運算的操作辦法。不同類型的數值,它們參與運算的

3、“操作規則”是不同的。例如:整數相加,需要最末一位(個位)對齊之后進行;而小數相加,則需要的是小數點對齊!還有,對于字符串類型而言,對它們最有意義的“加法操作”,顯然應該是將兩個串拼接起來!這完全與數的加法有天壤之別!整理課件7#include #include / 字符串類型#include / 復數類型using namespace std;int main() string str1 = Tsinghua University, ;string str2 = Department of Computer;cout str1 = str1 endl;cout str2 = str2 end

4、l;cout str1 + str2 = str1 + str2 endl;complex c1(3,4), c2(4,5); / 下學期的C+課程再詳細解釋cout c1 = c1 endl;cout c2 = c2 endl;cout c1 + c2 = c1 + c2 endl;cout c1 * c2 = c1 * c2 endl;return 0;/ task-11整理課件8而指針類型的加減運算,更是遵循一種截然不同的運算規則!(見前面的例子)整理課件9類型真的好重要啊整理課件10#include using namespace std;int main() int n;float

5、f;double d = 1.23; / 0.0; char c = *; cout address of n: &n endl;cout address of f: &f endl;cout address of d: &d endl;cout “address of c: ” &c endl; / 這行的結果很奇怪! / & : 取得變量內存單元地址的“操作符”!return 0;/ task-6整理課件11&是一個運算符,功能是“取變量的地址”,所以&n會返回變量n的內存單元地址。對于內存單元地址,cout會自動以16進制形式輸出地

6、址值。在這種形式輸出結果中,前2個字符固定為 0 x 或 0X。在輸出字符變量的內存地址時,cout采取另外的特殊處理方式不是輸出字符變量的內存單元地址,而是輸出內存單元存儲的字符內容,且將相鄰的后續內存單元內容也以字符形式輸出出來,直至碰到一個內容為0的內存單元才停止。doubel d = 1.23;doubel d = 0.0;整理課件12內存單元地址內存單元地址內存單元內容內存單元內容內存單元名稱(變量名)22FF47n3 (31 24)22FF46n2 (23 16)22FF45n1 (15 8)22FF44n0 ( 7 0) &n22FF43f3 (31 24)22FF42f

7、2 (23 16)22FF41f1 (15 8)22FF40f0 ( 7 0) &f22FF3Fd7 (63 56)d7 (63 56)22FF3Ed6 (55 48)d6 (55 48)22FF3Dd5 (47 40)d5 (47 40)22FF3Cd4 (39 32)d4 (39 32)22FF3Bd3 (31 24)d3 (31 24)22FF3Ad2 (23 16)d2 (23 16)22FF39d1 (15 8)d1 (15 8)22FF38d0 ( 7 0) d0 ( 7 0) &d &d22FF37c ( 7 0) &c變量內存單元地址,簡稱變量地

8、址整理課件13#include using namespace std;int main() int n = 12;float f = 3.4f;double d = 56.78; / 0.0; char c = 9;cout address of n: &n endl;cout address of f: &f endl;cout address of d: &d endl;cout address of c: &c endl;這只是輸出變量n, f, d, c的地址,并非保存變量地址!(其中,&c是特殊情況)整理課件14int* pn = &

9、n;float* pf = &f;double* pd = &d;char* pc = &c;cout pn: pn endl;cout pf: pf endl;cout pd: pd endl;cout pc: pc endl; return 0;TYPE* var; 通常稱為:var是TYPE類型的指針變量。TYPE類型的變量,其“地址”值,只能賦值給TYPE類型所對應的指針類型變量,即:用TYPE*定義的變量!這是輸出變量pn, pf, pd, pc 的內存單元值整理課件15這是設置 double d = 0.0;時的程序輸出。 (task-07.1)cout p

10、n: pn , address of pn: &pn endl;cout pf: pf , address of pf: &pf endl;cout pd: pd , address of pd: &pd endl;cout pc: pc , address of pc: &pc endl;若將代碼修改為:則新版本程序的輸出結果為:(task-07.2)整理課件#include using namespace std;int main() / 同前。略。* *pn = 999;pn = 999;* *pf = 888;pf = 888;* *pd = 777;p

11、d = 777;* *pc = A;pc = A;16對pn, pf, pd, pc中存儲的地址值所對應的內存單元進行賦值操作變量n的值n0X22FF440X22FF44pn0X22FF30 999n0X22FF440X22FF44pn0X22FF30地址 單元 名稱整理課件cout n: n *pn = *pn endl;cout f: f *pf = *pf endl;cout d: d *pd = *pd endl;cout c: c *pc = *pc cin * *pn; pn; * *pn = value; pn = value; : 從鍵盤輸入數值或將變量從鍵盤輸入數值或將變量v

12、aluevalue的值賦給(寫入)指定內存單元中,該目的內的值賦給(寫入)指定內存單元中,該目的內存單元的地址是由變量存單元的地址是由變量pnpn的值確定的。的值確定的。cout cout * *pn; var2 = pn; var2 = * *pn; pn; :將指定內存單元中存放的:將指定內存單元中存放的數值取出來(輸出或賦給另一個變量),該內存單數值取出來(輸出或賦給另一個變量),該內存單元的地址是由變量元的地址是由變量pnpn的值確定的。的值確定的。小 結整理課件#include using namespace std;int main()int n1 = 12, n2 = 87;ch

13、ar c1 = 9, c2 = B;cout n1: value = n1 address = &n1 endl;cout n2: value = n2 address = &n2 endl;cout c1: value = c1 address = &c1 endl;cout c2: value = c2 address = &c2 endl;關于變量的討論(關于變量的討論(6 6)n變量地址(內存單元地址)的加減操作23PART 1整理課件int* pn = &n1;char* pc = &c1;cout pn: pn endl;cout p

14、n + 1: pn + 1 endl;cout pn - 1: pn - 1 endl;cout pc: pc endl;cout pc + 1: pc + 1 endl;cout pc - 1: pc - 1 endl;n變量地址(內存單元地址)的加減操作24PART 2關于變量的討論(關于變量的討論(6 6)整理課件*(pn - 1) = 367;cout n2 = n2 *(pn-1); / runtime valuecout n2 = n2 endl;*(pc - 1) = K;cout c2 = c2 *(pc-1); / runtime valuecout c2 = c2 endl;return 0;/ task-10n變量地址(內存單元地址)的加減操作25PART 3關于變量的討論(關于變量的討論(6 6)整理課件26cin 整理課件nT* p = &var;p +

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論