課程
/后端開發
/C
/Linux C語言指針與內存
?而且為什么gdb得出? ? ? &str = ?&str[0], 不是說數組名被解釋為數組第一個元素的地址,也就是說str= &str[0] ? ?這里不是矛盾了嗎 ?是因為數組是變量的原因嗎?
2017-08-13
源自:Linux C語言指針與內存 5-4
正在回答
查到了 ? ?
int a[10];? a ,&a和&a[0] 都是分別是什么?先說明a ,&a和&a[0]三個值是的相等哈。
a叫做數組名,是數組首元素的地址,也就是&a[0]的值。像是一個指針類型,是一個int型的指針類型,int *,先理解成指針吧。
&a這才是一個真正的指針,是一個數組指針。是數組的地址。
切記:&a不是指向指針的指針,因為&a和a的值相等,但是*&a和*a的值不相等。*&a和a的值一樣,說明*&a僅僅是對這個數組指針進行了取值,取得的是數組的值,即數組首元素的地址,而不是對&a這個地址進行了取值。這個應該是c語言中針對數組指針運算的規定。?
這可能是數組和其他變量不同之處
舉報
指針-C語言的核心,代領大家對c語言有更加深刻的理解
2 回答str[]="hello" str是數組的首地址,是個數值常量,為什么p str 會輸出hello?
3 回答我想了解的是為什么指針指向常量的地址,輸出值時,地址是常量的地址,結果卻不一樣,我知道常量不能修改,但是為什么會有這種情況?
2 回答為什么第一個p a p b是輸出的值第二次輸出它的地址呢?
2 回答p *pa是訪問地址所指的內容,那int *pa=&a;這不是地址嗎,怎么*pa又是地址又是所指的內容?怎么回事?
3 回答為什么list和file都沒有內容輸出呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-08-13
查到了 ? ?
int a[10];? a ,&a和&a[0] 都是分別是什么?先說明a ,&a和&a[0]三個值是的相等哈。
a叫做數組名,是數組首元素的地址,也就是&a[0]的值。像是一個指針類型,是一個int型的指針類型,int *,先理解成指針吧。
&a這才是一個真正的指針,是一個數組指針。是數組的地址。
切記:&a不是指向指針的指針,因為&a和a的值相等,但是*&a和*a的值不相等。*&a和a的值一樣,說明*&a僅僅是對這個數組指針進行了取值,取得的是數組的值,即數組首元素的地址,而不是對&a這個地址進行了取值。這個應該是c語言中針對數組指針運算的規定。?
這可能是數組和其他變量不同之處