欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言指針函數(shù)具體用法 c語言指針函數(shù)的用法

C語言中指針的用法介紹(2)

如果上例中,ptr是被減去5,那么處理過程大同小異,只不過ptr的值是被減去5乘 sizeof(int),新的ptr指向的地址將比原孝碰來的ptr所指向的地址向低地址方向移動了20個字節(jié)。

永和ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

總結(jié)一下,一個指針ptrold加上一個整數(shù) n后,結(jié)果是一個新的指針ptrnew,

ptrnew的類型和ptrold的類型相同,ptrnew所指向的類型和ptrold所指向的類型也相同。ptrnew的值將比ptrold的值增加了 n乘sizeof(ptrold所指向的類型)個字節(jié)。就是說,ptrnew所指向的內(nèi)存區(qū)將比ptrold所指向的內(nèi)存區(qū)向高地址方向移動了 n乘 sizeof(ptrold所指向的類型)個字節(jié)。

一個指針ptrold減去一個整數(shù) n后,結(jié)果是一個新的指針ptrnew,ptrnew的類型和ptrold的類型相同,ptrnew所指向的類型和ptrold所指向的類型也相同。ptrnew的值將比ptrold的值減少了 n乘 sizeof(ptrold所指向的類型)個字節(jié),就是說, ptrnew所指向的內(nèi)存區(qū)將比ptrold所指向的內(nèi)存區(qū)向低地址方向移動了n乘sizeof(ptrold所指向的類型)個字節(jié)。

第三章。運(yùn)算?amp;和*

這里是取地址運(yùn)算符,*是...書上叫做"間接運(yùn)算符"。

a的運(yùn)算結(jié)果是一個指針,指針的類型是 a的類型加個*,指針?biāo)赶虻念愋褪莂的類型,指針?biāo)赶虻牡刂仿铮蔷褪莂 的地址。*p的運(yùn)算結(jié)果就五花八門了。總之*p的結(jié)果是p所指向的東西,這個東西有這些特點(diǎn):它的類型是p指向的類型,它所占用的地址是p所指向的地址。

例五:

int a=12;

int b;

int *p;

int **ptr;

Generated by Foxit PDF Creator ? Foxit Software

For evaluation only.p=a;//a的結(jié)果是一個指針,類型是 int*,指向的類型是 int,指向的地址是a的地址。*p=24;//*p的結(jié)果,在這里它的類型是 int,它所占用的地址是p所指向的地址,顯然,*p就是變量a。ptr=p;//p的結(jié)果是個指針,該指針的類型是p的類型加個*,在這里是 int**。該指針?biāo)赶虻念愋褪莗的類型,這里是 int*。該指針?biāo)赶虻牡刂肪褪侵羔榩自己的地址。

*ptr=b;//*ptr是個指針,b的結(jié)果也是個指針,且這兩個指針的類型和所指向的類型是一樣的,所以用b來給*ptr賦值就是毫無問題的了。**ptr=34;//*ptr的結(jié)果是ptr所指向的東西,在這里是一個指針,對這個指

針再做一次*運(yùn)算,結(jié)果就是一個 int 類型的變量。

第四章。指針表達(dá)式卜汪。

一個表達(dá)式的最后結(jié)果如果是一個指針,那么這個表達(dá)式就叫指針表達(dá)式。

下面是一些指針表達(dá)式的例子:

例六:

int a,b;

int array[10];

int *pa;

pa=a;//a是一個指針表達(dá)式。

int **ptr=pa;//pa也是一個指針表達(dá)式。

*ptr=b;//*ptr和b都是指針表達(dá)式。

pa=array;

pa++;//這也是指針表達(dá)式。

例七:

char *arr[20];

char **parr=arr;//如果把a(bǔ)rr 看作指針的話,arr 也是指針表達(dá)式

char *str;

str=*parr;//*parr 是指針表達(dá)式

str=*(parr+1);//*(parr+1)是指針表達(dá)式

str=*(parr+2);//*(parr+2)是指針表達(dá)式

由于指針表達(dá)式的結(jié)果是一個指針,所以指針巧弊談表達(dá)式也具有指針?biāo)哂械乃膫€要素:指針的類型,指針?biāo)赶虻念愋停羔樦赶虻膬?nèi)存區(qū),指針自身占據(jù)的內(nèi)存。

好了,當(dāng)一個指針表達(dá)式的結(jié)果指針已經(jīng)明確地具有了指針自身占據(jù)的內(nèi)存的話,這個指針表達(dá)式就是一個左值,否則就不是一個左值。

在例七中,a不是一個左值,因?yàn)樗€沒有占據(jù)明確的內(nèi)存。*ptr是一個左值,因?yàn)?ptr 這個指針已經(jīng)占據(jù)了內(nèi)存,其實(shí)*ptr 就是指針 pa,既然 pa 已經(jīng)在內(nèi)存中有了自己的位置,那么*ptr當(dāng)然也有了自己的位置。

第五章。數(shù)組和指針的關(guān)系

Generated by Foxit PDF Creator ? Foxit Software

For evaluation only.如果對聲明數(shù)組的語句不太明白的話,請參閱我前段時間貼出的文?lt;如何理解c 和c++的復(fù)雜類型聲明。數(shù)組的數(shù)組名其實(shí)可以看作一個指針。看下例:

例八:

int array[10]={0,1,2,3,4,5,6,7,8,9},value;

...

...

value=array[0];//也可寫成:value=*array;

value=array[3];//也可寫成:value=*(array+3);

value=array[4];//也可寫成:value=*(array+4);

上例中,一般而言數(shù)組名array代表數(shù)組本身,類型是 int [10],但如果把a(bǔ)rray看做指針的話,它指向數(shù)組的第 0個單元,類型是 int *,所指向的類型是數(shù)組單元的類型即 int。因此*array等于 0 就一點(diǎn)也不奇怪了。同理,array+3 是一個指向數(shù)組第3個單元的指針,所以*(array+3)等于3。其它依此類推。

例九:

例九:

char *str[3]={

"Hello,this is a sample!",

"Hi,good morning.",

"Hello world"

};

char s[80];

strcpy(s,str[0]);//也可寫成strcpy(s,*str);

strcpy(s,str[1]);//也可寫成strcpy(s,*(str+1));

strcpy(s,str[2]);//也可寫成strcpy(s,*(str+2));

上例中,str是一個三單元的數(shù)組,該數(shù)組的每個單元都是一個指針,這些指針各指向一個字符串。把指針數(shù)組名 str 當(dāng)作一個指針的話,它指向數(shù)組的第 0號單元,它的類型是char**,它指向的類型是char *。

*str也是一個指針,它的類型是char*,它所指向的類型是char,它指向的地址是字符串"Hello,this is a sample!"的第一個字符的地址,即’H’的地址。

C語言中什么時候用指針?

1.什么時候都可以用指針,因?yàn)橛弥羔樀男时扔米兞扛摺?/p>

2.當(dāng)一個函數(shù)要返回1個以上帶毀的運(yùn)算結(jié)果時,就必須用指針,因?yàn)橐粋€函數(shù)只能返回一個值,更多的得用指針“帶回”。

3.操作數(shù)組時,用指針不僅方便得多而且代碼時清行頃效很高。

4.操作文件時,不用指針寸步難行。

5.利用指針可以簡化函數(shù)調(diào)用的書寫過程,使源代碼易于閱答陸讀。

本文名稱:C語言指針函數(shù)具體用法 c語言指針函數(shù)的用法
標(biāo)題鏈接:http://chinadenli.net/article15/dsppjgi.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT建站公司網(wǎng)站收錄定制網(wǎng)站外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃

廣告

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

小程序開發(fā)