創(chuàng)新互聯(lián)秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè),小程序制作,網(wǎng)頁設(shè)計(jì)制作,手機(jī)網(wǎng)站開發(fā),營銷型網(wǎng)站建設(shè)幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長。
int *x =&10;//不能對10取地址 因?yàn)樗辉?nbsp;堆棧區(qū) //堆棧常量區(qū)的都b可以對變量取地址
10就是一個(gè)字面量 不能取地址
1:指針是一種數(shù)據(jù)類型
1)指針也是一種變量,占有內(nèi)存空間,用來保持內(nèi)存地址,在一般情況下所有指針、
都是4個(gè)字節(jié);
2)*p操作內(nèi)存
再指針聲明時(shí),*號表示所聲明的變量為指針,
在指針使用時(shí),*號表示操作指針?biāo)赶虻膬?nèi)存空間的值,
*p相當(dāng)于通過地址{p變量的值}找到一塊內(nèi)存,然后操作內(nèi)存
*p放在等號左邊賦值(給內(nèi)存賦值)
*p放在等號的右邊取值(從內(nèi)存獲取值)
3)指針變量和它指向的內(nèi)存塊是兩個(gè)不同的概念;
char s='a'; char *p=&s; *p='b';//此操作對不會改變指針變量的值,但是會改變所指向地址的值
保證指向的內(nèi)存是可修改的
char*p="abcdeff"; //c++編譯器會做兩個(gè)操作先給字符串分內(nèi)存再給 p 分配4個(gè)字節(jié)內(nèi)存
然后把a(bǔ)的地址賦值給 *p 也就是字符串的首地址
char *p=NULL;
strcpy([,"abcde"); //不可以向空內(nèi)存寫數(shù)據(jù)
4)怎么理解(多級)指針做函數(shù)參數(shù)
a.站在c/c++編譯器的角度,如果是指針的形參 編譯器只會分配四個(gè)字節(jié)的內(nèi)存
例如:
/*
void sed(char *p1);void sed(char* p1)
void send(char**p1);void send(char * * p1);
void send(char ***p1);void send(char *p[])
void send(char (*p)[10]);void send(char ******p);
*/
二間接賦值時(shí)指針存在最大的意義
1指針變量和他所指向的內(nèi)存空間是兩碼事
int a=10;
a=15; //直接賦值
int *p=NULL;
*p=20; //*p 放在左邊就是間接修改了a的值 這樣體現(xiàn)出的意義不大
但是如果用在函數(shù)傳參那就不一樣了;
int Ge(int*p)
{
*p=30;
}
int main()
{
int a=10;
Ge(&a)
}
有點(diǎn)事 下次再補(bǔ)充
標(biāo)題名稱:c/c++指針精講和需要注意的地方
URL地址:http://chinadenli.net/article32/ihjisc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站改版、商城網(wǎng)站、網(wǎng)站營銷、域名注冊、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)