附錄一再論指針和數(shù)組_第1頁
附錄一再論指針和數(shù)組_第2頁
附錄一再論指針和數(shù)組_第3頁
附錄一再論指針和數(shù)組_第4頁
附錄一再論指針和數(shù)組_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

附錄再論指針和嵌入式家園 嵌入式家園-開發(fā)板商 嵌入式嵌入式家園-開發(fā)板商 本章概 本章目 重 難 嵌入式嵌入式家園-開發(fā)板商 再論指針再論指針和嵌入式嵌入式家園-開發(fā)板商 再論指針和數(shù)嵌入式嵌入式家園-開發(fā)板商 指針與數(shù)組的不 嵌入式嵌入式家園-開發(fā)板商 數(shù)組和指針是如 externint*x;- externint 在這個上下文環(huán)境在這個上下文環(huán)境里這被稱為左值這被稱為右值左值在編譯時可知如無特別說明,右值左值表 結(jié)果地方嵌入式家園-開發(fā)板商 數(shù)組和指針是如 數(shù)組下標特點數(shù)組:chara[9]=“abedefgh”;運行運行取i的值,將它與9980取地址(9980+i)的內(nèi)容…編譯器符號表具有一個地址嵌入式嵌入式家園-開發(fā)板商 數(shù) 指針數(shù)指 特例指針:char運行運行取地址4624的內(nèi)容,就是取地址5081的內(nèi)容50815081編譯器符號表有一個符號p 嵌入式家園開發(fā)板商開發(fā)數(shù) 指針數(shù)數(shù) 指針特 例數(shù)組:chara[9]=“abedefgh”;運行運行取地址4624的內(nèi)容,即‘5081’取得i的值,并將它與5081相加取地址[508l+i]的內(nèi)容50815081…編譯器符號表有一個符號p嵌入式家園開發(fā)板商址4t://em 數(shù) 指針數(shù)指 特char chara[]=”abcdefgh”; 特 嵌入式嵌入式家園-開發(fā)板商 數(shù)組和指針的其他保存數(shù)據(jù)保存間接數(shù)據(jù),首先取得指針的內(nèi)直 數(shù)據(jù),a[I]只是簡單地以a*1為地址取通常用于動態(tài)數(shù)據(jù)通常用于固定數(shù)目且數(shù)據(jù)類型相同的元素相關的函數(shù)為malloc(),free()隱式分配自身即為通常指 數(shù) 嵌入式嵌入式家園-開發(fā)板商 指針與數(shù)組的嵌入式嵌入式家園-開發(fā)板商 什么時候指針與數(shù)組外部數(shù)組(externalarray)的使用數(shù)組時,數(shù)組可以寫成指針,可以互換嵌入式嵌入式家園-開發(fā)板商 什么時候指針與數(shù)組嵌入式嵌入式家園-開發(fā)板商 數(shù)組和指 的原charmy_array[10]char*my_ptr;j=strlen(my_array);J=strlen(my_ptr);printf(”%s嵌入式嵌入式家園-開發(fā)板商 數(shù)組和指 的原 嵌入式嵌入式家園-開發(fā)板商 數(shù)組和指針嵌入式嵌入式家園-開發(fā)板商 “表達式中的數(shù)組名”就是 數(shù)組下標整型數(shù)的長度是4個字節(jié),那么a[i+1]和a[i]在內(nèi)存中的距離就是4(而不是 Inti=2數(shù)組第i個元素p=a;

p=

p=嵌入嵌入式家園開發(fā)板嵌入嵌入式家園開發(fā)板商城開發(fā)板商“表達式中的數(shù)組名”就是數(shù)組 不能用指向該數(shù)組第一個元素的指針規(guī)嵌入式嵌入式家園-開發(fā)板商 把[R2]裝入把[R2]裝入數(shù) 模式分把左把左值(i)裝入R2(可以提到循環(huán)外把把左值(a)裝入Rl(可以提到循環(huán)外的的結(jié)果裝入R4到把如果需要到把如果需要,對R3的步長進行調(diào)ttp:/t 嵌入式家園-開發(fā)ttp:/t t C數(shù) 模式分把把左值(p)裝入R0(可以提到循環(huán)外把把[R0]裝入Rl(可以提到循環(huán)外把把R1+R3的結(jié)果裝入R4如果需要,對R3的步如果需要,對R3的步長進行把[R2]裝入把左值(i)裝入R2(可以提到循環(huán)外嵌入式家園-開發(fā)板

把 到[R4]/數(shù) 模式分把把左值(p)裝入R0(可以提到循環(huán)外把把[R0]裝入Rl(可以提到循環(huán)外把把R1+R3的結(jié)果裝入R4如果需要,對R3的步如果需要,對R3的步長進行把[R2]裝入把左值(i)裝入R2(可以提到循環(huán)外嵌入式家園-開發(fā)板

把 到[R4]/數(shù) 模式分把把P所指對象的大小裝入(可以提到循環(huán)外把把左值(p)裝入Rl(可以提到循環(huán)外把把[R0]裝入把把R5+R1把把R5+R1的結(jié)果裝入把嵌入式嵌入式家園-開發(fā)板

到/為什么C語言把數(shù)組形參當作函數(shù)參數(shù)嵌入式嵌入式家園-開發(fā)板商 1.2.4為什么C語言把數(shù)組形參當作嵌入式嵌入式家園-開發(fā)板商 1.2.4為什么C語言把數(shù)組形參當作 Func(char Func(char 嵌入式嵌入式家園-開發(fā)板商 為什么C語言把數(shù)組形參當作數(shù)組,指針實參的一般調(diào)用時的實通常目一個整型數(shù)的地一個int參數(shù)的傳址調(diào)指向整型數(shù)的指傳遞一個指整型數(shù)傳遞一個數(shù)一個整型數(shù)組某個元素的地傳遞數(shù)組的一部嵌入式嵌入式家園-開發(fā)板商 嵌入式家園-開發(fā)板商 怎樣使用數(shù) 嵌入式嵌入式家園-開發(fā)板商 數(shù) 嵌入式嵌入式家園-開發(fā)板商 數(shù)組 與a[I,j,k]一個10×20 字符數(shù)char或 typedefchar 嵌入式嵌入式家園-開發(fā)板商 數(shù)組的內(nèi)存

…嵌入 嵌入式家園-開發(fā)板商 如何分 數(shù)intapricot[2][3][5]sizeof(apricot)區(qū)域嵌入式嵌入式家園-開發(fā)板商 如何對數(shù)組進行初 short{10,12,3,4,一{31,22,6,0,-int嵌入式嵌入式家園-開發(fā)板商 1.3.1.4如何對數(shù)組進行初 charvegetables[][9]

char 嵌“crispyfriedpatatoes”嵌嵌入式家園開發(fā)板城

int 1.3.1.4如何對數(shù)組進行初 introw_1[]={1,2,3,4,5,-1};/*一1是行結(jié)束標志introw_2[]={6,7,-int*weight[]={嵌入式家園 嵌入式家園-開發(fā)板商 向函數(shù)傳遞一 數(shù)方法模式:my_function(int作用最小inta[3][3]{{1,1,{2,2,{3,3,函數(shù)定嵌}

{函數(shù)調(diào)向函數(shù)傳遞一 數(shù)方法模式:my_function(intmy_array[][20;方法3(指針傳遞模式模式:my_function(charinta[3][3]{{1,1,{2,2,{3,3,

{函數(shù)//函數(shù)定 **rr嵌}從函數(shù)返回一個{ 一個指向包含20個int元素的數(shù)組的指針;return}嵌入式家園-開發(fā)板商 嵌入式嵌入式家園-開發(fā)板商 指針運什么是間嵌入式嵌入式家園-開發(fā)板商 間 Intmain(){intint*p;i=5;p=& /*now*p==i*/*%PisdescribedinFAQVII.28*/printf("i=%d,p=%P, *p=%d\n",i,P,*p);*p=6; /*sameasi=6*/printf("i=%d,p=%P, *p=%d\n",i,P,*P);return0; /*seeFAQXVI.4*/}}嵌入式家園-開發(fā)板商 inti=int*ip0l=int**ip02=&ip01;int***ip03=&ip02;int****ip04=&dp03;int*****ip05=&ip04; 不要

******ip06= *******ip07=嵌入式嵌入式家園-開發(fā)板商 /*Wouldrunforeverifyoudidn'tlimitittoMAX*/#include<stdio.h>struct{ value[3];structcirc_list *next;struct suffixes[]="th",&.suffixes[1],/*Oth*/"st",&.suffixes[2],/*1st*/

#defineMAX20{inti=0;while(i{

*p="nd",&suffixes[3],/*2nd*/"rd",&suffixes[4],/*3rd*/"th",&.suffixes[5],/*4th*/"th",&.suffixes[6],/*5th*/"th",&suffixes[7],/*6th*/"th",&suffixes[8],/*7th*/"th",&suffixes[9],/*8th*/"th",&suffixes[0],/*9th*/};

printf("%ds%\n",i,p-+p=p-}} void指針與空NULL總是被定義為0嵌入式嵌入式家園-開發(fā)板商 空指 嵌入式嵌入式家園-開發(fā)板商 空指針的用嵌入式嵌入式家園-開發(fā)板商 什么是voidchar*strepy(char‘strl,constcharchar*strncpy(char*strl,constchar*str2,size_tn);void*memcpy(void*addrl,void*addr2,size_tn);嵌入式嵌入式家園-開發(fā)板商 NULL總是被定義為0NULLif(/*...{}{}

/*...*/嵌入式嵌入式家園-開發(fā)板商 指針運嵌入式嵌入式家園-開發(fā)板商 如果兩個指針向同一個數(shù)組,它們就可以相減,其為如果兩個指針不是指向一個數(shù)組,它們相減就沒有意嵌入式嵌入式家園-開發(fā)板商 1.4.4.1指針的相減運#include<stdio.h>#include<stddef.h>structstuff{

main({

*p0=*p8=&-array[8];diff=p8-p0;addr.diff=(char*)p8-(char*)structstuffarray[]{{"The"},{"quick"{"brown"},{"fox"{"jumped"},{"over"{"the"},{"lazy"{"dog."},{""嵌入式家

printf("&array[0]=p0=%P\n",(void*)p0);printf("&.array[8]=p8=%P\n",(void*)p8);printf("Thedifferenceofpointersis%ld\n",(long)diff);printf("Thedifferenceofaddressesis%ld\n",(long)printf("p8-8=%P\n",(void*)(p8-8));printf("p0+8=%P(sameasp8)\n",(void*)(p0+8));return0; /*seeFAQXVI.4*/嵌入式家園-開發(fā)板商 當把一個整型值加到一個指針上后,該指針指向的位嵌入式嵌入式家園-開發(fā)板商 兩個指針可以相p=(p+p2)-p+=p2-嵌入式嵌入式家園-開發(fā)板商 函數(shù)指針和指針嵌入式嵌入式家園-開發(fā)板商 指針函定義嵌入式嵌入式家園-開發(fā)板商 指針函例子float*find();{staticfloatinti,m;printf("Enterthenumbertobefound:");printf("thescoreofNO.%dare:\n",m);

函數(shù)定義/*定義指針函數(shù){float*pt;}}嵌入式嵌入式家園-開發(fā)板商 函數(shù)指定義指向函數(shù)的嵌入式嵌入式家園-開發(fā)板商 函數(shù)指例子 函數(shù)定義void{inta,b,c;

/*定義函數(shù)intmax(intx,int{}}嵌入式嵌入式家園-開發(fā)板商 函數(shù)指針的用定義函數(shù)指針定義一個原型為intFun(inta的函數(shù)指針typedefint(*PTRFUN)(intaPara);函數(shù)指針變量的PTRFUN pFunint(*pFun2)inta 嵌入式嵌入式家園-開發(fā)板商 intintCallBack(inta){return++a;}voidCaller(PTRFUNcbvoi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論