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

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

c語言二級指針

c語言二級指針

C
beyourpersonalbest 2016-03-20 12:37:02
如果把數組名a傳遞給形參**p,是不是*p=&a[0],p=a[0]?還是不太理解二級指針變量**p?、*p和p三者的關系
查看完整描述

2 回答

?
onemoo

TA貢獻883條經驗 獲得超454個贊

你沒說明p和a是如何聲明的,我先假定p是int **p,a是int a[xx]。

那么 *p = a 和 *p = &a[0] 都對,p = a[0] 則不正確。

p是指向int指針的指針,那么*p得到的就是一個int指針。同理**p就是那個p所指的指針指向的變量。

數組名做右值時會自動轉為指向其首元素的指針,所以 *p = a; 這句中右側的a就相當于指向a[0]的指針,同樣也是int指針,所以和*p的類型相同。

&a[0] 得到的就是指向a首元素的指針,同樣也和*p類型相同。

a[0] 得到的元素就是int類型,無法直接轉換為指針,所以不能賦值給*p。

查看完整回答
1 反對 回復 2016-03-20
?
onetwosix

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

其實對于指針的理解,個人覺得應該把指針當鑰匙理解,例如:int *p ,a[10]; 在程序中p表示當前地址,用的時候*p是指p當前所在的地址中的元素。**P是二級指針指向一級指針.

查看完整回答
反對 回復 2016-03-21
  • 2 回答
  • 3 關注
  • 1565 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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