c语言那些细节之a+1和a+1的区别
生活随笔
收集整理的這篇文章主要介紹了
c语言那些细节之a+1和a+1的区别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先a是一個數(shù)組名,當看到這個a與&a時,一般我們的理解都是這個數(shù)組的首地址。沒錯,如果加上打印的話,確實兩個值是一樣的。
不過&a是整個數(shù)組的首地址,a則是數(shù)組首元素的地址,雖然值一樣,但是意義卻不相同。
在此之前有必要先看下c程序在內(nèi)存中的分布圖。
?
?
?
下面來看一個例子吧還是。
?
示例代碼:
?
[html]?view plain?copy
?
?
?
運行結(jié)果:
?
[html]?view plain?copy
?
?
?
?
由上面的運行結(jié)果,我們可以知道a和&a的區(qū)別了。可得下圖:
?
?
?
因為是運行在main函數(shù)體內(nèi)的變量,所以這些都是在棧中運行的,所以p指針是指向了a[4]后的那個地址,而p本身的地址是在棧中分配的。
綜上可知:
?
[html]?view plain?copy
總結(jié)
以上是生活随笔為你收集整理的c语言那些细节之a+1和a+1的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于成长-几点感慨
- 下一篇: 手把手教你做产品经理1.0