voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidma">
C語言 程序設計 第7章 指針.ppt

C語言 程序設計 第7章 指針.ppt

ID:50083245

大小:626.50 KB

頁數(shù):35頁

時間:2020-03-08

C語言 程序設計 第7章 指針.ppt_第1頁
C語言 程序設計 第7章 指針.ppt_第2頁
C語言 程序設計 第7章 指針.ppt_第3頁
C語言 程序設計 第7章 指針.ppt_第4頁
C語言 程序設計 第7章 指針.ppt_第5頁
資源描述:

《C語言 程序設計 第7章 指針.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、第7章指針【問題7】閱讀下面程序,分析能否交換a和b中的內容。如果不能,問題出在哪里?應該如何解決?#includevoidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidmain(){inta=10,b=5;swap(a,b);printf("a=%d,b=%d",a,b);}函數(shù)采用按值傳遞方式,swap()函數(shù)中形參x、y交換,并不影響主函數(shù)中實參a和b的值。輸出的結果為:a=10,b=5shortinta=11;floatx=3.45;shortintb

2、;3.457.1指針和指針變量的概念1.地址與直接訪問變量a的地址變量占有的存儲單元的起始地址就是該變量的地址。直接訪問:根據(jù)變量名直接訪問變量存儲單元。整型變量b內存地址1001H1201H1204H1004H1301H整型變量a實型變量x……1304H變量11指針,就是內存單元的地址。一個變量的地址稱為該變量的指針。變量的指針是個地址常量。變量的地址可以通過取地址運算符&得到。2.指針的概念整型變量b內存地址1001H1201H1204H1002H1301H整型變量a實型變量x113.45……1302H變量變量a的指針3.指

3、針變量與間接訪問指針變量是用于存放變量地址的變量&a(1001H)11pa指針變量p指向變量a間接訪問:通過指針變量p訪問變量a的存儲單元7.2指針變量的定義與引用7.2.1指針變量的定義類型說明符*指針變量名;inta,*p1;float*p2;char*p3;指針變量名不包括*指針變量所定義的類型應與所指向的變量類型一致。遵循標識符的命名規(guī)則。7.2.2指針變量的操作1.兩個運算符(1)取地址運算符(&)&變量名(2)指針運算符(*)*指針變量名inta=5,*p1;p1=&a;*p1=8;將變量a的地址賦給指針變量p1。將

4、8賦給指針變量p1指向的變量a2.指針變量的賦值(1)在定義指針變量時進行賦值inta;int*p=&a;(2)通過賦值語句進行賦值inta,*p,*q;p=&a;q=p;給指針變量賦值時,只能是地址類型,而且兩邊的類型一定要匹配。在給指針變量賦地址值時,指針變量前不能加“*”號。3.指針變量的引用給指針變量賦值引用指針變量的值引用指針變量指向的變量的值inta,b,*p,*q;p=&a;q=p;b=*p;printf("%d",*p);給指針變量p賦值引用指針變量p的值引用指針變量p指向的變量a的值【例7.1】輸入任意兩個整數(shù)

5、,按先大后小的順序輸出(用指針實現(xiàn))。main(){inta,b,*p1,*p2,*q;scanf("%d,%d",&a,&b);p1=&a;p2=&b;if(*p1<*p2){q=p1;p1=p2;p2=q;}printf("a=%d,b=%d",a,b);printf("max=%d,min=%d",*p1,*p2);}運行程序,輸入:11,33?輸出:a=11,b=33max=33,min=114.指針的運算(1)指針的加減運算當指針變量p1已指向數(shù)組a中的一個元素時,則p1+1指向該元素的下一個元素,p1-1

6、指向該元素的前一個元素。inta[10]={1,2,3,4,5,6,7,8,9,10},i,*p1,*p2;p1=a;p2=&a[9];則p1+4、p2-3、*(p1+4)、*(p2–3)、*p1、*p2分別表示什么?a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]12345678910p1p1+4p2p2-3(2)指針的賦值運算【例7.2】閱讀下列程序,分析指針的變化,寫出運行結果。main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i,*p1,*p2;p1=a;p2=

7、&a[9];p1++;p2--;printf("%d%d",*p1,*p2);p1=p1+3;p1++;p2--;printf("%d%d",*p1,*p2);}運行結果:2968p1指向a[0],p2指向a[9]p1指向a[1],p2指向a[8]p1指向a[4]p1指向a[5],p2指向a[7](3)兩個同類型的指針相減如果指針變量p1和p2都指向同一數(shù)組,若執(zhí)行p2–p1,則實際上執(zhí)行的是:兩個地址的差值除以數(shù)組元素的長度,即表示的是p2與p1之間相差的元素個數(shù)。如果指針變量p1和p2都指向同一數(shù)組,若p1所

8、指向的數(shù)組元素位于p2所指向的數(shù)組元素之前,則關系表達式p1

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。