【C語言】第一章·第九節(jié)初識指針-創(chuàng)新互聯(lián)

相信很多小伙伴們學習C語言時候對指針的概念都是模糊的吧,哈哈哈哈哈哈不才也是一樣,所以在深入學習指針或者C語言時候咱們要弄明白什么是指針

目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站托管維護、企業(yè)網(wǎng)站設計、秀峰網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

正文開始


首先我們要知道指針是什么?

指針就是地址

在C語言中,變量等一切物體都有存儲字節(jié)的空間(現(xiàn)默認一個空間為一個字/8個bit),每一個空間都有地址,而指針存儲的就是地址。指針需要多大空間,取決于地址需要多大空間。

而指針存儲的就是地址。指針需要多大空間,取決于地址需要多大空間。

而指針存儲的就是地址。指針需要多大空間,取決于地址需要多大空間。

重要的事情說三遍?。?!

有的小明就會問了,不才你怎么知道變量等一切物體都有存儲字節(jié)的空間呀,我不信

那我們就舉下面例子來說明

int main(){
? ? int a = 10; //a在內存中要分配空間的 - 4個字節(jié)
? ? printf("%p\n",&a);//%p是專門用來打印地址? 
? ? return 0;
}

那么在這個函數(shù)輸出的一大串內容就是a的地址

譬如上面的0097FA34就是變量a的地址

指針變量的聲明

在了解指針變量的聲明前,咱們先了解 '&'這個單目操作符。

‘&’單目操作符名為:取地址符。用于取出后面緊跟的變量地址如上面的"&a",取到的是a變量的地址。

咱們通過例子來理解怎么定義指針

例1:

int main(){
    int a = 10; //a在內存中要分配空間的 - 4個字節(jié)
    printf("%p\n",&a);//%p是專門用來打印地址  
? ? 
? ? int *pa = &a;//pa是用來存放地址的,在C語言中pa就是指針變量
? ? ??//上面有*說明后面變量為指針
? ? // *說明了pa是指針變量,int說明了pa執(zhí)行的對象是int類型
    return 0;
}

在上面例子中 *說明了pa是指針變量,int說明了pa執(zhí)行的對象是int類型!

例2:

int main(){
? ? char ch = 'w';
    char *pc = &ch;//pc是用來存放地址的,在C語言中pc就是指針變量
      //上面有*說明后面變量為指針
    // *說明了pc是指針變量,char說明了pc執(zhí)行的對象是char類型
    return 0;
}

在上面例子中 *說明了pc是指針變量,char說明了pc執(zhí)行的對象是char類型

指針的初步使用

在了解指針變量的聲明前,咱們先了解 '*'這個單目操作符。

‘*’單目操作符名為:解引用操作符??梢酝ㄟ^地址找到對應的存儲空間進行修改內容。

咱們也是通過例子來理解如何初步的使用指針

例1:

int main(){
? ? int a = 10;
? ? int *pa = &a;
? ? *pa = 20;// *pa就是通過pa變量的地址找到a變量 即把20賦給了a
? ? 
? ? return 0;
}

下面這張圖作為輔助理解

藍色線為第3行的運行步驟:第一步 把a 的內存提取出來,第二步 把a的內存賦值存入pa的指針變量中

紫色線為第4行的運行步驟:第一步用 '*' 解引用操作符來通過pa變量的地址找到a變量, 第二步進行賦值 *pa = 20 即把 a改為20。內存中存儲的是二進制,補碼儲存。

總結(不才經典大白話)

關于指針的定義和細節(jié)咱們用一個例子來總結

int main(){
? ? int a = 10;
? ? //下面我們開始定義一個關于a的指針
? ? //int pa  要怎么和系統(tǒng)說明咱這個pa是指針呢?
? ? //int *pa 在pa前加一個'*'說明pa為指針
? ? int *pa = &a; //即為在pa中存了a的地址
? ? *pa = 20; //因為pa是一個地址所以在前面加了'*','*'是解引用操作符,解開了pa的地址,所以*pa就為a。那么這代碼等同為:a = 20。

? ? return 0;
}

指針就是地址:指針其實是個變量(指針變量),這個變量存放的是地址,所以稱為指針就是地址。(存放在指針中的值都被當成地址處理)。

int a = 10; // a是整形變量

int *p = &a; // p是指針變量

指針的大?。涸?2位平臺是4個字節(jié),在64位平臺是8個字節(jié)

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前標題:【C語言】第一章·第九節(jié)初識指針-創(chuàng)新互聯(lián)
文章地址:http://muchs.cn/article20/dddsjo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄標簽優(yōu)化、外貿建站微信小程序、虛擬主機、服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化