2019-08-17指針

實(shí)例1

#include <stdio.h>
int main(void)
{
    int  a  =  23;
    int  *p;  //  定義了一個(gè)int型的指針變量
    p  =  &a;  //相當(dāng)于p  =(&a)秦士,p中存的是變量a的地址
    *p  =  111;  //相當(dāng)于a  =  111
    printf("a=%d.\n", a);
    pirntf("*p=%p.\n", p);
    return  0;
}

知識(shí)點(diǎn):
(1)符號(hào)含義

符號(hào) 含義
a 代表變量a本身
p 代表指針變量p本身
&a 代表變量a的地址值
*p 代表指針變量品所指向的那個(gè)變量缺厉,也就是a
int *p 定義指針變量p
%p 用于打印指針變量的值

(2)指針定義的兩種理解
int *p*
第一種理解:首先看到p,這個(gè)是變量名伍宦,其次芽死,p前面有個(gè),說(shuō)明這個(gè)變量p是一個(gè)指針變量次洼,最后关贵,p前面有一個(gè)int,說(shuō)明這個(gè)指針變量p所指向的是一個(gè)int型數(shù)據(jù)卖毁。(推薦揖曾,符合編譯器設(shè)計(jì)思維)
第二種理解:首先看到p,這個(gè)是個(gè)變量名炭剪,其次练链,看到p前面的int *,把int *當(dāng)作一個(gè)整體來(lái)理解奴拦,int *是一種符合類(lèi)型媒鼓。該類(lèi)型表示一種指向int型數(shù)據(jù)的指針。

實(shí)例2

#include <stdio.h>
int main(void)
{
    int  a[5]  =  {555, 444, 333, 222, 111};
    int  *p;
    //p  =  &a;    //編譯報(bào)警告错妖,但是執(zhí)行結(jié)果是對(duì)的绿鸣,555。
    //p  =  &a[0];    //相當(dāng)于p  =  &(a[0]);編譯沒(méi)錯(cuò)也沒(méi)警告暂氯,執(zhí)行也沒(méi)錯(cuò)潮模,555
    p  =  a;    //編譯沒(méi)錯(cuò)也沒(méi)警告,執(zhí)行也沒(méi)錯(cuò)痴施,555
    printf("*p  =  %d.\n",  *p);
    //a  =  p;  //編譯報(bào)錯(cuò)擎厢,因?yàn)閿?shù)組名是個(gè)常量,所以不能賦值辣吃,所以數(shù)組名不能做左值动遭。
    return  0;
}

知識(shí)點(diǎn):
(1)數(shù)組名與&a
數(shù)組名a做右值時(shí),數(shù)組名表示數(shù)組首元素的首地址齿尽,所以可以直接賦值給指針沽损。&a表示數(shù)組的首地址。數(shù)組首元素的首地址和數(shù)組的首地址是不同的循头。前者是數(shù)組元素的地址绵估,后者是數(shù)組整體的地址。兩個(gè)東西的含義不同卡骂,但數(shù)值上是相同的国裳。
(2)訪(fǎng)問(wèn)數(shù)組兩種方式
數(shù)組的方式依次訪(fǎng)問(wèn):a[0]、a[1]全跨、a[2]缝左、a[3]、a[4]
指針的方式依次訪(fǎng)問(wèn):p浓若、(p+1)渺杉、(p+2)、(p+3)挪钓、(p+4)
因?yàn)閜的訪(fǎng)問(wèn)方式已經(jīng)確定是以幾個(gè)字節(jié)幾個(gè)字節(jié)去訪(fǎng)問(wèn)的是越。
(3)指針與++、--符號(hào)進(jìn)行運(yùn)算
指針本身也是一種變量碌上,因此也可以進(jìn)行運(yùn)算倚评,但是因?yàn)橹羔樧兞勘旧泶娴氖瞧渌兞康牡刂菲只玻虼嗽撝颠M(jìn)行
、/天梧、%等運(yùn)算是無(wú)意義的盔性。兩個(gè)指針相加本身也是無(wú)意義的,相減有意義呢岗。指針變量+1冕香、-1是有意義的。+1代表指針?biāo)赶虻母褡酉蚝笈惨桓瘢?1代表指針?biāo)赶虻母褡酉蚯芭惨桓瘛?br> (4)p++敷燎、++p暂筝、(p)++、++(p)
++先跟p結(jié)合硬贯,但是因?yàn)?+后置的時(shí)候,本身含義就是先運(yùn)算后增加1(運(yùn)算指的是p++整體與前面的進(jìn)行運(yùn)算陨收;增加1指的是p+1)饭豹,所以實(shí)際上p++符號(hào)整體對(duì)外表現(xiàn)的是p的值,運(yùn)算完成后p再加1务漩。
所以
p++等同于:p拄衰; p += 1;
++p,等同于p += 1; p;
(
p)++饵骨,使用()強(qiáng)制將
與p結(jié)合翘悉,只能先計(jì)算
p,然后值加1居触。
++(*p)妖混,值加1,再代入運(yùn)算轮洋。
--與++類(lèi)似制市。

實(shí)例3

不改變實(shí)參

int add(int a,int b)
函數(shù)傳參使用了int型數(shù)弊予,本身是數(shù)值類(lèi)型祥楣,實(shí)際調(diào)用該函數(shù)時(shí),實(shí)參將自己拷貝一份汉柒,并將拷貝傳遞給形參進(jìn)行運(yùn)算误褪。實(shí)參自己實(shí)際是不參與的。所以碾褂,在函數(shù)中兽间,是沒(méi)辦法改變實(shí)參本身的。

改變實(shí)參

經(jīng)典例子——交換兩個(gè)數(shù)的值

#include  <stdio.h>
int  main(void)
{
    int  x,y;
    x  =  5;
    y  =  3;
    printf("before  swap:x  =  %d,  y  =  %d.\n",  x,y);
    swap_pointer(&x, &y);
    printf("after  swap:x  =  %d,  y  =  %d.\n",  x,y);
}

int  swap_pointer(int  *p1,  int  *p2)
{
    int  temp;
    temp  =  *p1;    //實(shí)際調(diào)用時(shí)斋扰,p1得到的實(shí)參是x的地址&x渡八,*p1代表的就是x
    *p1  =  *p2;    
    *p2  =  temp;
    return  0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啃洋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子屎鳍,更是在濱河造成了極大的恐慌宏娄,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逮壁,死亡現(xiàn)場(chǎng)離奇詭異孵坚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)窥淆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)卖宠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人忧饭,你說(shuō)我怎么就攤上這事扛伍。” “怎么了词裤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵刺洒,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吼砂,道長(zhǎng)逆航,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任渔肩,我火速辦了婚禮因俐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘周偎。我一直安慰自己抹剩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布栏饮。 她就那樣靜靜地躺著吧兔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪袍嬉。 梳的紋絲不亂的頭發(fā)上境蔼,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音伺通,去河邊找鬼箍土。 笑死,一個(gè)胖子當(dāng)著我的面吹牛罐监,可吹牛的內(nèi)容都是我干的吴藻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼弓柱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沟堡!你這毒婦竟也來(lái)了侧但?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤航罗,失蹤者是張志新(化名)和其女友劉穎禀横,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體粥血,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柏锄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了复亏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趾娃。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缔御,靈堂內(nèi)的尸體忽然破棺而出抬闷,到底是詐尸還是另有隱情,我是刑警寧澤耕突,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布饶氏,位于F島的核電站,受9級(jí)特大地震影響有勾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜古程,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一蔼卡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挣磨,春花似錦雇逞、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至晤锥,卻和暖如春掉蔬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矾瘾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工女轿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壕翩。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓蛉迹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親放妈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子北救,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容