freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

“六規(guī)”三講講稿-資料下載頁

2024-11-09 12:50本頁面
  

【正文】 較兩種訪問方式之間的關系,可以用某人甲(系統)要找某人乙(變量)來類比。一種情況是,甲知道乙在何處,直接去找就是(即直接訪問)。另一種情況是,甲不知道乙在哪,但丙(指針變量)知道,此時甲可以這么做:先找丙,從丙處獲得乙的去向,然后再找乙(即間接訪問)。(1)指針──即地址一個變量的地址稱為該變量的指針。通過變量的指針能夠找到該變量。(2)指針變量──專門用于存儲其它變量地址的變量指針變量num_pointer的值就是變量num的地址。指針與指針變量的區(qū)別,就是變量值與變量的區(qū)別。(3)為表示指針變量和它指向的變量之間的關系,用指針運算符“*”表示。例如,指針變量num_pointer與它所指向的變量num的關系,表示為: *num_pointer,即*num_pointer等價于變量num。因此,下面兩個語句的作用相同:num=3。/*將3直接賦給變量num*/ num_pointer=amp。num。/*使num_pointer指向num */ *num_pointer=3。/*將3賦給指針變量num_pointer所指向的變量*/二、變量的指針和指向變量的指針變量1.指針變量的定義(1)指針變量的定義與一般變量的定義相比,除變量名前多了一個星號“*”(指針變量的定義標識符)外,其余一樣:數據類型 *指針變量[, *指針變量2??]。注意:此時的指針變量p_int、p_f、p_ch,并未指向某個具體的變量(稱指針是懸空的)。使用懸空指針很容易破壞系統,導致系統癱瘓。(2)中間三行的賦值語句──取地址運算(&)取地址運算的格式: &變量例如,amp。num_int、amp。num_f、amp。num_ch的結果,分別為變量num_int、num_f、num_ch的地址。注意:指針變量只能存放指針(地址),且只能是相同類型變量的地址。例如,指針變量p_int、p_f、p_ch,只能分別接收int型、float型、char型變量的地址,否則出錯。(3)后三行的輸出語句──指針運算(*)使用直接訪問和間接訪問兩種方式,分別輸出變量num_int、num_f、num_ch的值。注意:這三行出現在指針變量前的星號“*”是指針運算符,訪問指針變量所指向的變量的值,而非指針運算符。例:使用指針變量求解:輸入2個整數,按升序(從小到大排序)輸出。/*程序功能:使用指針變量求解2個整數的升序輸出*/main(){ int num1,num2。int *num1_p=amp。num1, *num2_p=amp。num2, *pointer。printf(“Input the first number: ”)。scanf(“%d”,num1_p)。printf(“Input the second number: ”)。scanf(“%d”,num2_p)。printf(“num1=%d, num2=%dn”, num1, num2)。if(*num1_p *num2_p)/*如果num1num2,則交換指針*/ pointer= num1_p, num1_p= num2_p, num2_p=pointer。printf(“min=%d, max=%dn”, *num1_p, *num2_p)。}程序運行情況:Input the first number:9←┘ Input the second number:6←┘ num1=9, num2=6 min=6, max=9程序說明:(1)第5行的if語句如果*num1_p*num2_p(即num1num2),則交換指針,使num1_p指向變量num2(較小值),num2_p指向變量num1(較大值)。(2)printf(“min=%d, max=%dn”, *num1_p, *num2_p)。語句:通過指針變量,間接訪問變量的值。本案例的處理思路是:交換指針變量num1_p 和num2_p的值,而不是變量num1和num2的值(變量num1和num2并未交換,仍保持原值),最后通過指針變量輸出處理結果。指針變量作函數參數(1)指針變量,既可以作為函數的形參,也可以作函數的實參。(2)指針變量作實參時,與普通變量一樣,也是“值傳遞”,即將指針變量的值(一個地址)傳遞給被調用函數的形參(必須是一個指針變量)。注意:被調用函數不能改變實參指針變量的值,但可以改變實參指針變量所指向的變量的值。例:,要求實參為指針變量。void exchange(int *pointer1, int *pointer2){ int temp。temp=*pointer1, *pointer1=*pointer2, *pointer2=temp。}/*主函數main()*/ main(){ int num1,num2。/*定義并初始化指針變量num1_p和 num2_p */ int *num1_p=amp。num1, *num2_p=amp。num2。printf(“Input the first number: ”)。scanf(“%d”, num1_p)。printf(“Input the second number: ”)。scanf(“%d”, num2_p)。printf(“num1=%d, num2=%dn”, num1, num2)。if(*num1_p *num2_p)/* 即num1num2)*/ exchange(num1_p, num2_p)。/*指針變量作實參*/ /*輸出排序后的num1和num2的值*/ printf(“min=%d, max=%dn”, num1, num2)。}程序運行情況:Input the first number:9←┘ Input the second number:6←┘ num1=9, num2=6 min=6, max=9 調用函數exchange()之前、之時、結束時和結束后的情況。形參指針變量pointer1(指向變量num1)和pointer2(指向變量num2),在函數調用開始時才分配存儲空間,函數調用結束后立即被釋放。雖然被調用函數不能改變實參指針變量的值,但可以改變它們所指向的變量的值??偨Y:為了利用被調用函數改變的變量值,應該使用指針(或指針變量)作函數實參。其機制為:在執(zhí)行被調用函數時,使形參指針變量所指向的變量的值發(fā)生變化;函數調用結束后,通過不變的實參指針(或實參指針變量)將變化的值保留下來。三、數組與指針 數組的指針──數組在內存中的起始地址,數組元素的指針──數組元素在內存中的起始地址。指向數組的指針變量的定義,與指向普通變量的指針變量的定義方法一樣。例如,int array[10], *pointer=array(或amp。array[0])?;蛘撸篿nt array[10], *pointer。pointer=array。注意:數組名代表數組在內存中的起始地址(與第1個元素的地址相同),所以可以用數組名給指針變量賦值。數組元素的引用,既可用下標法,也可用指針法。使用下標法,直觀;而使用指針法,能使目標程序占用內存少、運行速度快。4.通過指針引用數組元素如果有“int array[10],*pointer=array?!?,則:(1)pointer+i和array+i都是數組元素array[i]的地址,如圖96所示。(2)*(pointer+i)和*(array+i)就是數組元素array[i]。(3)指向數組的指針變量,也可將其看作是數組名,因而可按下標法來使用。例如,pointer[i]等價于*(pointer+i)。注意:pointer+1指向數組的下一個元素,而不是簡單地使指針變量pointer的值+1。其實際變化為pointer+1*size(size為一個元素占用的字節(jié)數)。例如,假設指針變量pointer的當前值為3000,則pointer+1為3000+1*2=3002,而不是3001。說明:(1)指針變量的值是可以改變的,所以必須注意其當前值,否則容易出錯。(2)指向數組的指針變量,可以指向數組以后的內存單元,雖然沒有實際意義。(3)對指向數組的指針變量(px和py)進行算術運算和關系運算的含義 1)可以進行的算術運算,只有以下幾種: px177。n, px++/++px, px/px, pxpy px177。n:將指針從當前位置向前(+n)或回退(n)n個數據單位,而不是n個字節(jié)。顯然,px++/++px和px/px是px177。n的特例(n=1)。pxpy:兩指針之間的數據個數,而不是指針的地址之差。2)關系運算表示兩個指針所指地址之間、位置的前后關系:前者為小,后者為大。例如,如果指針px所指地址在指針py所指地址之前,則px〈py的值為1。5.數組作函數參數數組名作形參時,接收實參數組的起始地址;作實參時,將數組的起始地址傳遞給形參數組。引入指向數組的指針變量后,數組及指向數組的指針變量作函數參數時,可有4種等價形式(本質上是一種,即指針數據作函數參數):(1)形參、實參都用數組名(2)形參、實參都用指針變量(3)形參用指針變量、實參用數組名(4)形參用數組名、實參用指針變量三、習題綜合作業(yè)
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1