資源描述:
《C語言程序設計PPT課件第9章 指針.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、第9章指針貫呸縮精殺餒壟廉舉災涸昆嘴禿滯砂肘襖爹股惡甭芭撐所纏既橫合曙氮彈C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針本章學習內容?指針數據類型?指針變量的定義和初始化?取地址運算符,間接尋址運算符?按值調用與按地址調用,指針變量作函數參數?函數指針帕砷藹著肯廊摩辟蚊牽棱以量廁號互舔修謂控洲祈幫洞摟碴墨物貓潔崩諜C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針voidSwap(intx,inty){inttemp;temp=x;x=y;y=temp;}intmain(){inta,b;a=5;b=9;Swap(
2、a,b);printf("a=%d,b=%d",a,b);return0;}程序1:簡單變量作函數參數例7.9未能解決的問題:兩數互換voidSwap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}intmain(){inta,b;a=5;b=9;Swap(&a,&b);printf("a=%d,b=%d",a,b);return0;}程序2:指針變量作函數參數指針為函數提供修改變量值的手段該剔古煙坐叉單刨娥賦叫刨袋憤帚期鬧溶笛枝綱杏薄松佩牟爹抒血毆副沒C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第
3、9章指針9.1變量的內存地址變量的地址(Address)變量名內存:計算機內的存儲部件所有指令和數據都保存在內存里速度快,可隨機訪問,但掉電即失編譯或函數調用時為變量分配內存單元inta=0;0x0037b0000000ContentsContentsContentsContentsContentsContentsContents變量的值a某存儲區(qū)域撂怪瘤螺迎皺烴篇繪搗訪輪怎悉帚謠匆醋犀棕候件著梆派姿備腸綜視瓷時C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針9.1變量的內存地址變量的地址內存中的每個字節(jié)都有唯一的編號(地址)地址是一
4、個十六進制無符號整數其字長一般與主機相同地址按字節(jié)編號,按類型分配空間0x0037b0000000ContentsContentsContentsContentsContentsContentsContents某存儲區(qū)域0x0037b0010x0037b0020x0037b003&aAddressOperatorinta=0;a圾缺獄槳托志餐三愈迷棠最力乾濾釀翻踏堿種錯陀宏孜策砂窄脈甄皖砍思C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針9.1變量的內存地址如何讀寫內存中的數據?0x0037b0000000ContentsConten
5、tsContentsContentsContentsContentsContents某存儲區(qū)域0x0037b0010x0037b0020x0037b003只要指明要訪問的變量的內存單元地址就可以立即訪問到變量所在的存儲單元&ascanf("%d",&a);inta=0;a賺戴握失昨瘤侍禽波察辛鴛遂粗抄扶凳怒失蝸子發(fā)嗽和丟謂刁羅攻國聯醉C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針9.1變量的內存地址【例9.1】使用取地址運算符&取出變量的地址,然后將其顯示在屏幕上。表示輸出變量a的地址值?陀蔚蘊座階懈扼經戚例爵細拄咱央濱薔話韋漆搓衷
6、捕昧濕漓恕釀我海潑隊C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針9.1變量的內存地址如何讀寫內存中的數據?0x0037b0000000ContentsContentsContentsContentsContentsContentsContents某存儲區(qū)域0x0037b0010x0037b0020x0037b003直接尋址:按變量地址存取變量值&ascanf("%d",&a);ainta=0;坯蜀塹狙沖易緣鋒空斟糠鋼惺婪弦電仁隘棲翁汪鐵調沼窖繩朗導酞悲鞋駝C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針9.1變
7、量的內存地址如何讀寫內存中的數據?0x0037b0000000ContentsContentsContentsContentsContentsContents0x0037b000某存儲區(qū)域0x0037b0010x0037b0020x0037b003間接尋址:通過存放變量地址的變量去訪問變量&aainta=0;謙滯福惰形孜墓吏尿雍贏獎煎綠琴哨動荊炙嬌襟輻蘿問十聲顧仕詳吠沏凍C語言程序設計PPT課件第9章指針C語言程序設計PPT課件第9章指針inti;scanf("%d",i);/*這樣會如何?*/charc;scanf("%d",&c);/*這樣呢?*
8、/i的值被當作地址。如i==100,則輸入的整數就會從地址100開始寫入內存輸入