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

正文內(nèi)容

[理學]c語言課件(1)-文庫吧

2025-09-20 00:31 本頁面


【正文】 指向同一元素 ?若 p1與 p2不指向同一數(shù)組,比較無意義 ?間接訪問主調(diào)函數(shù)中的變量 ——地址傳遞 特點: 共享內(nèi)存 ,“雙向 ” 傳遞 ?指針作為函數(shù)參數(shù),可以使函數(shù)返回多個值 指針作為函數(shù)的參數(shù) 例 編寫函數(shù) swap1,交換兩個變量的值。 …... 2021 2021 2021 2021 2021 200C 2021 201C 2020 ... 5 9 整型變量 a 整型變量 b (main) COPY (swap1) 整型 x 整型 y 整型 t include void swap1(int x, int y) { int t。 t=x。 x=y。 y=t。 } void main() { int a=5,b=9。 swap1(a,b)。 printf(%d,%d,a,b)。 } 5 9 5 9 5…... 2021 2021 2021 2021 2021 200C 2021 201C 2020 ... 5 9 整型變量 a 整型變量 b (main) (swap2) 指針 p1 指針 p2 整型 t 5 9 2021 2021 COPY 5 例 編寫函數(shù) swap2,交換兩個變量的值。 include void swap2(int *p1, int *p2) { int t。 t=*p1。 *p1=*p2。 *p2=t。 } void main() { int a=5,b=9。 swap2(amp。a,amp。b)。 printf(%d,%d\n,a,b)。 } 例 編寫函數(shù) , 求一元二次方程 ax2+bx+c=0的根 ( a≠0) 的兩個實根 。 include include int root(float a, float b, float c, float *x1, float *x2) { float d。 d=b*b4*a*c。 if(d=0) { *x1=(b+sqrt(d))/2/a。 *x2=(bsqrt(d))/2/a。 return 1。 } else return 0。 } void main() { float a,b,c,x1,x2。 int flag。 scanf(%f %f %f,amp。a,amp。b,amp。c)。 flag=root(a,b,c,amp。x1,amp。x2)。 if (flag) printf(x1=%.2f x2=%.2f\n,x1,x2)。 else printf(方程無實數(shù)解 \n)。 } 程序設(shè)計分析:因函數(shù)計算后有兩個實根要返回給主調(diào)函數(shù),所以用指針作為函數(shù)的參數(shù)。 程序運行: 1 5 3↙ x1= x2= ?傳地址的兩個特點: ?實參值是地址 ( 可以是常量 、 變量或表達式 ) 。函數(shù)調(diào)用時 , 將地址傳給形參 。 ?被調(diào)函數(shù)執(zhí)行時 , 如形參指針所指向的變量值改變了 , 則主調(diào)函數(shù)中的變量值也改變了 。 通過指針(地址)間接訪問主調(diào)函數(shù)中的變量,從而達到改變主調(diào)函數(shù)中的變量值。 作業(yè)( P213) ?一、選擇題 9。 ?二、寫出程序的輸出結(jié)果 3; ?三、填空題 2 ?四、編程題 2 、 4 指針與一維數(shù)組 a[0] a[1] a[2] a[3] a[9] ... a a+9 a+1 a+2 地址 元素 下標法 a[0] a[1] a[2] a[9] [] 變址運算符 a[i] ? *(a+i) *a *(a+1) *(a+2) *(a+9) 指針與數(shù)組 指針法 例 6個元素的整型數(shù)組 , 并輸入 6個整數(shù)存儲到數(shù)組中 , 利用指針計算各元素的和并輸出 。 include void main() { int a[6],i,s,*p。 printf(Please input data:\n)。 for(i=0。i6。i++) scanf(%d,amp。a[i])。 s=0。 for(p=a。pa+6。p++) s+=*p。 printf(s=%d\n,s)。 } 程序運行: Please input data:\ 2 6 8 4 1 9 ↙ s=30 用指針變量引用一維數(shù)組元素 int a[7]={0,0,5,9,2,0,3}。 int *p, *q。 p=amp。a[0]。 *p=4。 給 p 指向的數(shù)組元素 a[0]賦值 p+1 指向的數(shù)組元素 a[1] *(p+1)=8。 給 p+1 指向的數(shù)組元素 a[1]賦值 p 3 0 0 2 9 5 0 a p+1 4 8 例 用指針變量給一維數(shù)組元素賦值 , 輸出各元素的值及元素之和 。 include void main() { int a[10], i, j,s。 int *p。 for(p=a。 pa+10。 p++) scanf(%d, p)。 p=a。 //使 p重新指向第 1個元素 for(s=0,i=0。 i10。 i++) s+=*(p+i)。 for( i=0。 i10。 i++) printf(“%3d”, p[i])。 //考慮 p[i]還可以寫成什么? printf(\ns=%d,s)。 } p a a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a+10 … 數(shù)組 a void main() { int i,a[5]={10,20,30,40,50},*p。 p=a。 for(i=0。i5。i++) printf(“%d ”,*p++)。 } 輸出: 10 20 30 40 50 *p++和 (*p)++的不同作用 void main() { int i,a[5]={10,20,30,40,50},*p。 p=a。 for(i=0。i5。i++) printf(“%d ”,(*p)++)。 } 輸出: 10 11 12 13 14 *p++等價于 *(p++) (*p)++是 p所指對象加 1 ? 使用指針變量要注意的幾個問題 ?指針變量的值可以被改變 ,而數(shù)組名是地址常量 , 不能改變 如 : int a[10], *p for(i=0。 i10。 i++,a++) //錯誤 printf(“%d”,*a)。 ?要注意指針變量的當前值 如: int a[7] , i, *p=a。 for(i=0。i7。i++) scanf(" %d" ,p++)。 for(i=0。i7。i++, p++) //有錯 printf(" %d" ,*p)。 例 :main() { int a [7]。 . . . f(a,7)。 . . } f(int *x,int n) { . . . } x 3 4 0 2 9 5 8 a 一維 數(shù)組作為函數(shù)的參數(shù) ▲ 函數(shù)中設(shè)置 指針變量參數(shù) ,調(diào)用時, 數(shù)組名作為實參, 將數(shù)組中某個元素的地址 給形參,從主調(diào)函數(shù)復(fù)制一維數(shù)組; ▲ 函數(shù)中設(shè)置變量參數(shù),調(diào)用時,復(fù)制一維數(shù)組的元素個數(shù)。 例 6個整數(shù) , 存儲到數(shù)組中 , 計算各元素的和并輸出 。 要求定義一個函數(shù)計算數(shù)組元素的和 。 void main() { int a[6],i,s。 printf(Please input data:\n)。 for(i=0。i6。i++) scanf(%d,amp。a[i])。 s=sum(a,6)。 printf(s=%d\n,s)。 } include int sum(int *b, int n) { int m=0,*p。 for(p=b。pb+6。p++) m+=*p。 return m。 } 程序運行: Please input data:\ 20 15 35 5 30 10 ↙ s=115 include void sort(int *a,int n) { int i,j,k,t。 for(i=0。 in1。 i++) { k=i。 for(j=i+1。 jn。 j++) if(*(a+j)*(a+k))k=j。 t=*(a+i)。 *(a+i)=*(a+k
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1