相信很多小伙伴們學(xué)習(xí)C語(yǔ)言時(shí)候?qū)χ羔樀母拍疃际悄:陌?,哈哈哈哈哈哈不才也是一樣,所以在深入學(xué)習(xí)指針或者C語(yǔ)言時(shí)候咱們要弄明白什么是指針
目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、秀峰網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。正文開始
指針就是地址
在C語(yǔ)言中,變量等一切物體都有存儲(chǔ)字節(jié)的空間(現(xiàn)默認(rèn)一個(gè)空間為一個(gè)字/8個(gè)bit),每一個(gè)空間都有地址,而指針存儲(chǔ)的就是地址。指針需要多大空間,取決于地址需要多大空間。
而指針存儲(chǔ)的就是地址。指針需要多大空間,取決于地址需要多大空間。
而指針存儲(chǔ)的就是地址。指針需要多大空間,取決于地址需要多大空間。
重要的事情說(shuō)三遍?。?!
有的小明就會(huì)問(wèn)了,不才你怎么知道變量等一切物體都有存儲(chǔ)字節(jié)的空間呀,我不信
那我們就舉下面例子來(lái)說(shuō)明
int main(){
? ? int a = 10; //a在內(nèi)存中要分配空間的 - 4個(gè)字節(jié)
? ? printf("%p\n",&a);//%p是專門用來(lái)打印地址?
? ? return 0;
}
那么在這個(gè)函數(shù)輸出的一大串內(nèi)容就是a的地址
譬如上面的0097FA34就是變量a的地址
指針變量的聲明在了解指針變量的聲明前,咱們先了解 '&'這個(gè)單目操作符。
‘&’單目操作符名為:取地址符。用于取出后面緊跟的變量地址如上面的"&a",取到的是a變量的地址。
咱們通過(guò)例子來(lái)理解怎么定義指針
例1:
int main(){
int a = 10; //a在內(nèi)存中要分配空間的 - 4個(gè)字節(jié)
printf("%p\n",&a);//%p是專門用來(lái)打印地址
? ?
? ? int *pa = &a;//pa是用來(lái)存放地址的,在C語(yǔ)言中pa就是指針變量
? ? ??//上面有*說(shuō)明后面變量為指針
? ? // *說(shuō)明了pa是指針變量,int說(shuō)明了pa執(zhí)行的對(duì)象是int類型
return 0;
}
在上面例子中 *說(shuō)明了pa是指針變量,int說(shuō)明了pa執(zhí)行的對(duì)象是int類型!
例2:
int main(){
? ? char ch = 'w';
char *pc = &ch;//pc是用來(lái)存放地址的,在C語(yǔ)言中pc就是指針變量
//上面有*說(shuō)明后面變量為指針
// *說(shuō)明了pc是指針變量,char說(shuō)明了pc執(zhí)行的對(duì)象是char類型
return 0;
}
在上面例子中 *說(shuō)明了pc是指針變量,char說(shuō)明了pc執(zhí)行的對(duì)象是char類型
指針的初步使用在了解指針變量的聲明前,咱們先了解 '*'這個(gè)單目操作符。
‘*’單目操作符名為:解引用操作符??梢酝ㄟ^(guò)地址找到對(duì)應(yīng)的存儲(chǔ)空間進(jìn)行修改內(nèi)容。
咱們也是通過(guò)例子來(lái)理解如何初步的使用指針
例1:
int main(){
? ? int a = 10;
? ? int *pa = &a;
? ? *pa = 20;// *pa就是通過(guò)pa變量的地址找到a變量 即把20賦給了a
? ?
? ? return 0;
}
下面這張圖作為輔助理解
藍(lán)色線為第3行的運(yùn)行步驟:第一步 把a(bǔ) 的內(nèi)存提取出來(lái),第二步 把a(bǔ)的內(nèi)存賦值存入pa的指針變量中
紫色線為第4行的運(yùn)行步驟:第一步用 '*' 解引用操作符來(lái)通過(guò)pa變量的地址找到a變量, 第二步進(jìn)行賦值 *pa = 20 即把 a改為20。內(nèi)存中存儲(chǔ)的是二進(jìn)制,補(bǔ)碼儲(chǔ)存。
總結(jié)(不才經(jīng)典大白話)關(guān)于指針的定義和細(xì)節(jié)咱們用一個(gè)例子來(lái)總結(jié)
int main(){
? ? int a = 10;
? ? //下面我們開始定義一個(gè)關(guān)于a的指針
? ? //int pa 要怎么和系統(tǒng)說(shuō)明咱這個(gè)pa是指針呢?
? ? //int *pa 在pa前加一個(gè)'*'說(shuō)明pa為指針
? ? int *pa = &a; //即為在pa中存了a的地址
? ? *pa = 20; //因?yàn)閜a是一個(gè)地址所以在前面加了'*','*'是解引用操作符,解開了pa的地址,所以*pa就為a。那么這代碼等同為:a = 20。
? ? return 0;
}
指針就是地址:指針其實(shí)是個(gè)變量(指針變量),這個(gè)變量存放的是地址,所以稱為指針就是地址。(存放在指針中的值都被當(dāng)成地址處理)。
int a = 10; // a是整形變量
int *p = &a; // p是指針變量
指針的大?。涸?2位平臺(tái)是4個(gè)字節(jié),在64位平臺(tái)是8個(gè)字節(jié)
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前標(biāo)題:【C語(yǔ)言】第一章·第九節(jié)初識(shí)指針-創(chuàng)新互聯(lián)
文章地址:http://aaarwkj.com/article20/dddsjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、標(biāo)簽優(yōu)化、外貿(mào)建站、微信小程序、虛擬主機(jī)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容