中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
UC頭條:[C語言]帶你徹底理解指針(詳解)
userphoto

2023.05.31 山西

關(guān)注

指針的介紹:

指針是一個用來存放地址的變量,可以通過指針存放的地址找到對應(yīng)位置的值,對其進行使用。

指針在32位平臺下的大小是4個字節(jié),在64位平臺下是8個字節(jié)。(這是因為32位平臺下內(nèi)存地址是由32根地址線組成,一根地址線就是1bit,用4個字節(jié)就可以存下,而64位平臺有64根地址線,需要八個字節(jié)才可以存下)。

如果對指針進行加減與解引用操作,則±的步長與解引用操作的長度由指針類型決定,指針類型是幾個字節(jié)±步長與解引用就是幾個字節(jié)。

一、簡單指針?

char*pc(字符指針)

int*pi(整形指針)

float*pf(浮點型指針)

還有short…double等等,拿部分舉例。

1.1指針的定義與使用

這三種指針的用法基本相同,只不過char*指針存放的是char變量地址,int型指針存放的是int變量地址,float指針存放的是float變量地址。

#define_CRT_SECURE_NO_WARNINGS1#includeintmain{chara='a';//定義一個char類型變量char*pa=&a;//*號先與pa結(jié)合說明pa是一個指針類型,指向的是char型數(shù)據(jù)的地址,將a的地址給到pa*pa='b';//通過pa改變a的值printf('%c',a);//bintnum=10;int*pnum=#*pnum=20;printf('%d',num);floatf=9.0;float*pf=&f;*pf=5.0;printf('%d',f);}

我們可以使用指針對指針指向的變量進行使用(修改或輸出)。

1.2指針與數(shù)組

數(shù)組名就是數(shù)組的首地址。

代碼示例

點擊加載圖片

得到數(shù)組首地址可以通過指針遍歷數(shù)組

代碼示例

點擊加載圖片

二、指針數(shù)組?

指針數(shù)組就是用來裝指針的數(shù)組

intp1[];//(方便理解拿整形數(shù)組對比)p1與[]結(jié)合說明p1是數(shù)組,裝的是int類型的數(shù)據(jù)int*p2[];//[]優(yōu)先級比*高p2先與[]結(jié)合,說明p2是一個數(shù)組里面裝的是int*類型的數(shù)據(jù)

舉個例子

#includeintmain{inta=0;intb=0;intc=0;int*arr[3]={&a,&b,&c};//指針數(shù)組就是數(shù)組的每個位置都存儲一個地址(指針)}

三、數(shù)組指針?

3.1數(shù)組指針的定義

數(shù)組指針與指針數(shù)組名字非常相似但是卻截然不同,數(shù)組指針是一個指針,指針數(shù)組是一個數(shù)組

//對比一下指針數(shù)組和數(shù)組指針int*pa[];//這是指針數(shù)組,優(yōu)先級問題,pa先與[]結(jié)合,說明pa是一個數(shù)組,裝的是int*的數(shù)據(jù)int(*pa)[]//這是數(shù)組指針,優(yōu)先級更高,pa先與*結(jié)合,說明pa是一個指針,指向一個int類型的數(shù)組

3.2”數(shù)組名“與”&數(shù)組名“

前面說了數(shù)組名代表數(shù)組首元素地址,那&數(shù)組名呢?

代碼示例

點擊加載圖片

對數(shù)組名與&數(shù)組名進行輸出,發(fā)現(xiàn)地址一樣

點擊加載圖片

對數(shù)組名與&數(shù)組名+1,發(fā)現(xiàn)數(shù)組名加了四個字節(jié),而&數(shù)組名加了十六進制的28,也就是十進制的40,為整個數(shù)組的大小。

結(jié)論:數(shù)組名與&數(shù)組名地址一樣,但是數(shù)組名代表的是首元素地址,而&數(shù)組名代表的是整個數(shù)組。

3.3數(shù)組指針使用

voidprint(int(*pa)[3]){for(inti=0;i<2;i++){for(intj=0;j<3;j++){printf('%d',arr[i][j]);}}}intmain{intarr[2][3]={0,1,2,3,4,5};print(arr);//二維數(shù)組首地址相當(dāng)于&(第一個一維數(shù)組)}

四、函數(shù)指針邏

函數(shù)指針就是指向函數(shù)的指針

函數(shù)指針的定義

*函數(shù)返回值(pa)(函數(shù)參數(shù))

可以看作pa先與*結(jié)合,說明pa是個指針,指向一個函數(shù)

4.1函數(shù)指針的使用

代碼示例

intadd(inta,intb){returna+b;}intmain{int(*pa)(int,int)=add;inta=3;intb=4;printf('%d',pa(3,4));//7}

五、函數(shù)指針數(shù)組?

函數(shù)指針數(shù)組就是用來裝函數(shù)指針的數(shù)組,需要注意每個函數(shù)指針數(shù)組的返回值和參數(shù)必須相同類型

函數(shù)指針數(shù)組的定義

*函數(shù)返回值(pa[])(函數(shù)參數(shù))

可以看作pa先與[]結(jié)合說明pa是一個數(shù)組,每個位置裝的是函數(shù)指針(地址)

5.1函數(shù)指針數(shù)組的使用

#includeintadd(inta,intb)//需要注意函數(shù)指針數(shù)組的每個參數(shù)類型與返回值類型必須相同{returna+b;}intsub(inta,intb){returna-b;}intmul(inta,intb){returna*b;}intdiv(inta,intb){returna/b;}voidmenu{printf('***************\n');printf('1:add2:sub\n');printf('3:mul4:div\n');printf('0:quit\n');printf('**************\n');}intmain{intx=0;inty=0;intinput=0;intret=0;int(*p[5])(intx,inty)={NULL,add,sub,mul,div};do{menu;printf('請選擇:');scanf('%d',&input);if(input>=1&&input<=4){printf('輸入兩個數(shù)字:');scanf('%d%d',&x,&y);ret=(*p[input])(x,y);}elseif(input==0){break;}else{printf('請輸入0-4的數(shù)字\n');continue;}printf('%d\n',ret);}while(input);}

點擊加載圖片

六、指向函數(shù)指針數(shù)組的指針??

函數(shù)指針數(shù)組的定義為int(*pa[5])(參數(shù)),指向函數(shù)指針數(shù)組的指針就是:

int((*pa)[5])(參數(shù))//用括號把pa括起來使得pa先與*結(jié)合,說明pa是一個指針,返回值類型就為函數(shù)指針數(shù)組

點擊加載圖片

指向函數(shù)指針數(shù)組的指針的定義

voidtest(char*str){printf('指針真簡單,%s',str);}intmain{//定義一個函數(shù)指針數(shù)組void(*pa[5])(char*);pa[0]=test;//指向函數(shù)指針數(shù)組的指針void(*(*ppa)[5])(char*)=&pa;return0;}

七、回調(diào)函數(shù)

回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當(dāng)這個指針被用來調(diào)用其所指向的函數(shù)時,我們就說這是回調(diào)函數(shù)。回調(diào)函數(shù)不是由該函數(shù)的實現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時由另外的一方調(diào)用的,用于對該事件或條件進行響應(yīng)。

stdlib頭文件下的qsort函數(shù)就是一個回調(diào)函數(shù),鏈接:qsort函數(shù)詳解

完結(jié)

創(chuàng)作不易,還請各位小伙伴多多點贊?關(guān)注?收藏?

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
指針
1分鐘徹底理解C語言指針的概念
用圖文和代碼幫你透徹講解—C語言指針
指針與數(shù)組
C語言基礎(chǔ) - 指針(1)
計算機程序設(shè)計基礎(chǔ)(C語言)第8章 指針
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服