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

正文內(nèi)容

c語言程序設(shè)計(jì)(下)ppt-文庫吧

2024-11-22 21:49 本頁面


【正文】 x=10。 p1=amp。x。p2=amp。p1。p3=amp。p2。p4=amp。p3。 printf( x=%d\n,****p4) 。 } 程序運(yùn)行結(jié)果 : x=10 26 指針 指針與數(shù)組 指針與一維數(shù)組 一個(gè)數(shù)組的元素在內(nèi)存中是連續(xù)存放的,數(shù)組第一個(gè)元素的地址稱數(shù)組的首地址。在 C語言中,數(shù)組名是該數(shù)組的首地址。例如有以下定義語句: int a[10], *p; 則語句 p=a;和 p=amp。a[0];是等價(jià)的,都表示指針變量 p指向 a數(shù)組的首地址。數(shù)組首地址的值在C語言中是一個(gè)地址常量,是不能改變的。因此,語句 a=p。 或 a++。都是非法的。 27 指針 指針與數(shù)組 指針與一維數(shù)組 1.通過一維數(shù)組名所代表的地址存取數(shù)組元素 . 假設(shè)已定義一維數(shù)組 a,由上述可知 a+i是元素 a[i]的地址,根據(jù)指針運(yùn)算符“ *”的運(yùn)算規(guī)則知 *(a+i) 與元素 a[i]等價(jià)。例如,下述程序段: int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}。 *(a+5)=50。 /* 相當(dāng)于 a[5]=50 。 */ scanf(%d, amp。a[8])。 /* 相當(dāng)于 scanf(%d, a+8 )。 */ printf(%d\n, *(a+5) )。 /* 相當(dāng)于 printf(%d\n, a[5]) ) */ 28 指針 指針與數(shù)組 指針與一維數(shù)組 2.通過指針運(yùn)算符 “ *” 存取數(shù)組元素 設(shè)有如下程序段: int a[10], *p; p=a; 即 p指向 a數(shù)組的首地址,由上述可知 p+i是元素 a[i]的地址,根據(jù)指針運(yùn)算符“ *”的運(yùn)算規(guī)則知 *(p+i) 與元素 a[i]等價(jià)。例如,下述程序段: int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a。 *(p+5)=50。 /* 相當(dāng)于 a[5]=50 。 */ scanf(%d, amp。a[8])。 /* 相當(dāng)于 scanf(%d, p+8 )。 */ printf(%d\n, *(p+5) )。 /* 相當(dāng)于 printf(%d\n, a[5]) ) */ 29 指針 指針與數(shù)組 指針與一維數(shù)組 3.通過帶下標(biāo)的指針變量存取數(shù)組元素 C語言中的下標(biāo)運(yùn)算符“ [ ]”可以構(gòu)成表達(dá)式,假設(shè) p為指針變量, i為整型表達(dá)式,則可以把 p[i]看成是表達(dá)式,首先按 p+i計(jì)算地址,然后再存取此地址單元中的值。因此 p[i]與 *(p+i)等價(jià)。例如,下述程序段: int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a。 p[5]=50。 /* 相當(dāng)于 a[5]=50 。 */ scanf(%d, amp。a[8])。 /* 相當(dāng)于 scanf(%d, amp。p[8] )。 */ printf(%d\n, p[5] )。 /* 相當(dāng)于 printf(%d\n, a[5]) ) */ 30 指針 指針與數(shù)組 指針與二維數(shù)組 C語言規(guī)定,二維數(shù)組由一維數(shù)組擴(kuò)展形成,即一維數(shù)組的每一個(gè)元素作為數(shù)組名形成一行數(shù)組,各行數(shù)組的元素個(gè)數(shù)相同,是二維數(shù)組的列數(shù)。例如定義了二維數(shù)組 int a[3][4],它是由一維數(shù)組int a[3]擴(kuò)展形成,即以 a[0]、 a[1]、 a[2]為數(shù)組名(首地址)形成三行一維數(shù)組,元素個(gè)數(shù)均為列數(shù) 4。因此 a[0]、 a[1]、 a[2]為一級(jí)指針常量,指向各行的首列(列指針)。例如 0行的 a[0]=amp。a[0][0]指向 0行 0列。 0行有四個(gè)元素,它們是 a[0][0]、 a[0][1]、 a[0][2]、a[0][3]。 另 外 a[0]、 a[1]、 a[2]又是數(shù)組名為 a的一維數(shù)組的三個(gè)元素,首地址 a=amp。a[0]指向的“元素”為一級(jí)指針常量,因此 a為二級(jí)指針常量,指向 0行(行指針)。 31 指針 指針與數(shù)組 指針與二維數(shù)組 【 例 65】 輸出二維數(shù)組的有關(guān)值,程序編寫如下,注意理解各語句的含義。 include void main( ) {int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}。 printf(%u,%u\n,a, *a)。 /* 0行首地址和 0行 0列首地址 */ printf(%u,%u\n,a+1, *a+1)。 /* 1行首地址和 0行 1列首地址 */ printf(%u,%u\n,a, amp。a[0])。 /* 0行首地址 */ printf(%u,%u,%u\n,*(a+1), a[1], amp。a[1][0])。 /* 1行 0列首地址 */ printf(%d,%d,%d\n,*(*(a+1)+2), *(a[1]+2), a[1][2])。 /* 1行 2列的元素 7 */ } 程序運(yùn)行結(jié)果: 1310544,1310544 1310560,1310548 1310544,1310544 1310560,1310560,1310560 7,7,7 32 指針 指針與數(shù)組 指針與二維數(shù)組 (1) 指向數(shù)組元素的指針變量(一級(jí)指針變量):將二維數(shù)組當(dāng)成一維數(shù)組訪問。 33 指針 指針與數(shù)組 指針與二維數(shù)組 【 例 66】 用一級(jí)指針變量輸出二維數(shù)組的全部元素。 include void main( ) {int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},i,j,*p。 p=a[0]。 /* 指針變量必須得到首元素地址 a[0]或 *a或amp。a[0][0] */ for(i=0。 i3。 i++) for(j=0。 j4。 j++) printf(%3d, *(p+4*i+j))。 printf(\n)。 } 程序運(yùn)行結(jié)果 : 1 2 3 4 5 6 7 8 9 10 11 12 34 指針 指針與數(shù)組 指針與二維數(shù)組 (2) 指向一維數(shù)組的指針變量(行指針變量) 二維數(shù)組名(設(shè)為 a)以及 a+ a+2等均為行指針(二級(jí)指針)常量,分別指向由一行元素組成的行一維數(shù)組,但它們不能移動(dòng)(例如不能由 a++使 a得到地址 a+1)。但是如果有定義: int a[3][4], (*prt)[4]。 prt=a。 考慮其中的 (*prt)[4],因?yàn)?( )和 [ ]的優(yōu)先級(jí)相同, *prt表示 prt應(yīng)為指針變量,它指向一個(gè)含有 4個(gè)元素的整型一維數(shù)組,而不是指向一個(gè)元素,因此它是二級(jí)指針變量(行指針變量),可以移動(dòng)。指向一維數(shù)組的指針變量的一般定義形式為: 類型 (*指針變量名 )[一維數(shù)組元素個(gè)數(shù) ]; 35 指針 指針與數(shù)組 指針與二維數(shù)組 【 例 67】 輸出二維數(shù)組任意行任意列的元素值。 定義指向一維數(shù)組的指針變量,按照上面的說明表示二維數(shù)組任意行任意列的元素,程序如下: include void main( ) {int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}。 int (*p)[4]=a, row, col。 printf(Enter arbitrary number of row and column:\n)。 scanf(%d,%d, amp。row, amp。col)。 printf(a[%d][%d]=%d\n, row, col ,*(*(p+row)+col))。 } 程序運(yùn)行結(jié)果:a[2][3]=12 Enter arbitrary number of row and column: 2,3 36 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) 【 例 68】 調(diào)用函數(shù),實(shí)現(xiàn)求解一維數(shù)組中的最大元素。 我們首先假設(shè)一維數(shù)組中下標(biāo)為 0的元素是最大和用指針變量指向該元素。后續(xù)元素與該元素一一比較,若找到更大的元素,就替換。 sub_max()函數(shù)的形式參數(shù)為一維數(shù)組,實(shí)際參數(shù)是指向一維數(shù)組的指針。 37 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) include void main( ) {int sub_max( )。 /* 函數(shù)聲明 */ int n,a[10],*ptr=a。 /* 定義變量,并使指針指向數(shù)組 */ int max。 for (n=0。n=9。n++) /* 輸入數(shù)據(jù) */ scanf(%d,amp。a[n])。 max=sub_max(ptr,10)。 /* 函數(shù)調(diào)用,其實(shí)參是指針 */ printf(max=%d\n,max)。 } int sub_max(b,i) /* 函數(shù)定義,其形參為數(shù)組 */ int b[ ],i。 {int temp,j。 temp=b[0]。 for (j=1。j=9。j++) if(tempb[j]) temp=b[j]。 return temp。 } 38 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) 程序的 main()函數(shù)部分,定義數(shù)組 a共有 10個(gè)元素,由于將其首地址傳給了 ptr,則指針變量 ptr就指向了數(shù)組,調(diào)用 sub_max()函數(shù),再將此地址傳遞給 sub_max()函數(shù)的形式參數(shù) b,這樣一來, b數(shù)組在內(nèi)存與 a數(shù)組具有相同地址,即在內(nèi)存完全重合。在 sub_max()函數(shù)中對(duì)數(shù)組 b的操作,與操作數(shù)組 a意義相同。 main()函數(shù)完成數(shù)據(jù)的輸入,調(diào)用 sub_max()函數(shù)并輸出運(yùn)行結(jié)果。 sub_max()函數(shù)完成對(duì)數(shù)組元素找最大的過程。在 sub_max()函數(shù)內(nèi)數(shù)組元素的表示采用下標(biāo)法。 39 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) include void main( ) {int sub_max( )。 int n,a[10],*ptr=a。 int max。 for (n=0。n=9。n++) scanf(%d,amp。a[n])。 max=sub_max(ptr,10)。 printf(max=%d\n,max)。 } int sub_max(b,i) /* 形式參數(shù)為指針變量 */ int *b,i。 { int temp,j。 temp=b[0]。 /* 數(shù)組元素指針的下標(biāo)法表示 */ for(j=1。j=i1。j++) if(tempb[j]) temp=b[j]。 return temp。} 40 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) 在 sub_max()中,形式參數(shù)是指針,調(diào)用程序的實(shí)際參數(shù) ptr為指向一維數(shù)組 a的指針,虛實(shí)結(jié)合, sub_max()的形式參數(shù) b得到 ptr的值,指向了內(nèi)存的一維數(shù)組。數(shù)組元素采用下標(biāo)法表示,即一維數(shù)組的頭指針為 b,數(shù)組元素可以用 b[j]表示。 程序輸入數(shù)據(jù): 1 3 5 6 89 1 2 56 23 78 程序運(yùn)行結(jié)果: max=89 41 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) 上述程序的函數(shù)中,數(shù)組元素還可以用指針表示 int sub_max(b,i) /* 函數(shù)定義 */ int *b,i。 {int temp,j。 temp=*b++。 for (j=1。j=i1。j++) if(temp*b) temp=*b++。 return temp。 } 42 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) 【 例 68】 用指向數(shù)組的指針變量實(shí)現(xiàn)一維數(shù)組的由小到大的冒泡排序。編寫三個(gè)函數(shù)用于輸入數(shù)據(jù)、數(shù)據(jù)排序、數(shù)據(jù)輸出。 43 指針 指針與數(shù)組 數(shù)組指針作函數(shù)的參數(shù) include define N 10 void main( ) {void input( )。 /* 函數(shù)聲明 */ void sort( )。 void output( )。 int a[N],*p。 /* 定義一維數(shù)組
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1