亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言指針**p是什么意思

C語言指針**p是什么意思

C
BIG陽 2019-05-31 07:02:29
C語言指針**p是什么意思
查看完整描述

5 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

**p :二級指針,表示p所指向的地址里面存放的是一個指向類型的指針。

*p:一級指針,表示p所指向的地址里面存放的是一個類型的值。

擴展資料:

指針變量可以進行加減運算,例如p++、p+i、p-=i。指針變量的加減運算并不是簡單的加上或減去一個整數,而是跟指針指向的數據類型有關。

給指針變量賦值時,要將一份數據的地址賦給它,不能直接賦給一個整數,例如int *p = 1000;是沒有意義的,使用過程中一般會導致程序崩潰。

使用指針變量之前一定要初始化,否則就不能確定指針指向哪里,如果它指向的內存沒有使用權限,程序就崩潰了。對于暫時沒有指向的指針,建議賦值NULL。

兩個指針變量可以相減。如果兩個指針變量指向同一個數組中的某個元素,那么相減的結果就是兩個指針之間相差的元素個數。

數組也是有類型的,數組名的本意是表示一組類型相同的數據。在定義數組時,或者和 sizeof、& 運算符一起使用時數組名才表示整個數組,表達式中的數組名會被轉換為一個指向數組的指針。




查看完整回答
反對 回復 2019-06-01
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊


**p表示p也表示地址,簡單的說,這個地址對應的存儲單元存儲的數也是一個地址,而不是數值,而這個被存儲的地址對應的存儲單元存儲的數據才是真正的相應類型的數值!

例如: 

int i=10; //定義了一個整型變量 

int *p=&i; //定義了一個指針指向這個變量 

int **p1=&p; //定義了一個二級指針指向p指針 

那么取出10的值方式為: 

printf(“i=[%d]\n”,*p); 

printf(“i=[%d]\n”,**p1);

擴展資料:

指針與數組關系

指針數組:就是一個由指針組成的數組,那個數組的各個元素都是指針,指向某個內存地址?!har *p[10];//p是一個指針數組

數組指針:數組名本身就是一個指針,指向數組的首地址。注意這是一個常數。

example:

char (*p)[10]//p是一個數組指針

函數指針:本身是一個指針,指向一個函數入口地址,通過該指針可調用其指向的函數,使用函數指針可實現回調函數。





查看完整回答
反對 回復 2019-06-01
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

char p表示p的類型是字符。
char *p表示p的類型是字符指針,指向字符類型的變量。
char **p表示p的類型是字符指針的指針,指向字符指針的變量。

查看完整回答
反對 回復 2019-06-01
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊


例如 int **p ;
解釋:
int *p;則p是一個指向int型的變量的地址, p是地址;
*p指的是內容
而int **p;p指的是一個地址,p放的是*p的地址, *p指的是存放int 的地址.



查看完整回答
反對 回復 2019-06-01
  • 5 回答
  • 0 關注
  • 970 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號