程序設(shè)計(jì)基礎(chǔ)w02-3-chap03-關(guān)于“代數(shù)思維”的思考討論-_第1頁
程序設(shè)計(jì)基礎(chǔ)w02-3-chap03-關(guān)于“代數(shù)思維”的思考討論-_第2頁
程序設(shè)計(jì)基礎(chǔ)w02-3-chap03-關(guān)于“代數(shù)思維”的思考討論-_第3頁
程序設(shè)計(jì)基礎(chǔ)w02-3-chap03-關(guān)于“代數(shù)思維”的思考討論-_第4頁
程序設(shè)計(jì)基礎(chǔ)w02-3-chap03-關(guān)于“代數(shù)思維”的思考討論-_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、整理課件2#include using namespace std;int main() int num; cout num endl; return 0;/ task-1整理課件3如果變量自定義后沒有賦值,則變量的內(nèi)存單元中的值是一個(gè)隨機(jī)的數(shù)值,在不同的機(jī)器上、在不同的環(huán)境下,單元的內(nèi)容是不同的。整理課件關(guān)于變量的討論(關(guān)于變量的討論(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、 / 結(jié)果很奇怪!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; / 這次結(jié)果正確了!return 0;關(guān)于變量的討論(關(guān)于變量的討論(2 2)整理課件關(guān)于變量的討論(關(guān)于變量的討論(2 2)n變量為什么要指定類型?n類型信息,用來做什么?n不同類型,差別是什么?6類型的用途告訴計(jì)算機(jī)如何操作數(shù)據(jù)。即:類型“暗示”了運(yùn)算的操作辦法。不同類型的數(shù)值,它們參與運(yùn)算的

3、“操作規(guī)則”是不同的。例如:整數(shù)相加,需要最末一位(個(gè)位)對(duì)齊之后進(jìn)行;而小數(shù)相加,則需要的是小數(shù)點(diǎn)對(duì)齊!還有,對(duì)于字符串類型而言,對(duì)它們最有意義的“加法操作”,顯然應(yīng)該是將兩個(gè)串拼接起來!這完全與數(shù)的加法有天壤之別!整理課件7#include #include / 字符串類型#include / 復(fù)數(shù)類型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); / 下學(xué)期的C+課程再詳細(xì)解釋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而指針類型的加減運(yùn)算,更是遵循一種截然不同的運(yùn)算規(guī)則?。ㄒ娗懊娴睦樱┱碚n件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; / 這行的結(jié)果很奇怪! / & : 取得變量內(nèi)存單元地址的“操作符”!return 0;/ task-6整理課件11&是一個(gè)運(yùn)算符,功能是“取變量的地址”,所以&n會(huì)返回變量n的內(nèi)存單元地址。對(duì)于內(nèi)存單元地址,cout會(huì)自動(dòng)以16進(jìn)制形式輸出地

6、址值。在這種形式輸出結(jié)果中,前2個(gè)字符固定為 0 x 或 0X。在輸出字符變量的內(nèi)存地址時(shí),cout采取另外的特殊處理方式不是輸出字符變量的內(nèi)存單元地址,而是輸出內(nèi)存單元存儲(chǔ)的字符內(nèi)容,且將相鄰的后續(xù)內(nèi)存單元內(nèi)容也以字符形式輸出出來,直至碰到一個(gè)內(nèi)容為0的內(nèi)存單元才停止。doubel d = 1.23;doubel d = 0.0;整理課件12內(nèi)存單元地址內(nèi)存單元地址內(nèi)存單元內(nèi)容內(nèi)存單元內(nèi)容內(nèi)存單元名稱(變量名)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變量內(nèi)存單元地址,簡稱變量地

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類型所對(duì)應(yīng)的指針類型變量,即:用TYPE*定義的變量!這是輸出變量pn, pf, pd, pc 的內(nèi)存單元值整理課件15這是設(shè)置 double d = 0.0;時(shí)的程序輸出。 (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;若將代碼修改為:則新版本程序的輸出結(jié)果為:(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對(duì)pn, pf, pd, pc中存儲(chǔ)的地址值所對(duì)應(yīng)的內(nèi)存單元進(jìn)行賦值操作變量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; : 從鍵盤輸入數(shù)值或?qū)⒆兞繌逆I盤輸入數(shù)值或?qū)⒆兞縱

12、aluevalue的值賦給(寫入)指定內(nèi)存單元中,該目的內(nèi)的值賦給(寫入)指定內(nèi)存單元中,該目的內(nèi)存單元的地址是由變量存單元的地址是由變量pnpn的值確定的。的值確定的。cout cout * *pn; var2 = pn; var2 = * *pn; pn; :將指定內(nèi)存單元中存放的:將指定內(nèi)存單元中存放的數(shù)值取出來(輸出或賦給另一個(gè)變量),該內(nèi)存單數(shù)值取出來(輸出或賦給另一個(gè)變量),該內(nèi)存單元的地址是由變量元的地址是由變量pnpn的值確定的。的值確定的。小 結(jié)整理課件#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;關(guān)于變量的討論(關(guān)于變量的討論(6 6)n變量地址(內(nèi)存單元地址)的加減操作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變量地址(內(nèi)存單元地址)的加減操作24PART 2關(guān)于變量的討論(關(guān)于變量的討論(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變量地址(內(nèi)存單元地址)的加減操作25PART 3關(guān)于變量的討論(關(guān)于變量的討論(6 6)整理課件26cin 整理課件nT* p = &var;p +

溫馨提示

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

評(píng)論

0/150

提交評(píng)論