a+1和a+1
首先a是一個數組名,當看到這個a與&a時,一般我們的理解都是這個數組的首地址。沒錯,如果加上打印的話,確實兩個值是一樣的。
不過&a是整個數組的首地址,a則是數組首元素的地址,雖然值一樣,但是意義卻不相同。
在此之前有必要先看下c程序在內存中的分布圖。
示例代碼:
由上面的運行結果,我們可以知道a和&a的區別了。可得下圖:
因為是運行在main函數體內的變量,所以這些都是在棧中運行的,所以p指針是指向了a[4]后的那個地址,而p本身的地址是在棧中分配的。
綜上可知
&a+i?=?a?+?i*sizeof(a); ?
a+i?=?a?+i*sizeof(a[0]); ??
參考:http://blog.csdn.net/eastmoon502136/article/details/8630790
轉載于:https://www.cnblogs.com/Deanboy/p/7565335.html
總結
- 上一篇: javascript 将内容复制到剪贴板
- 下一篇: 【iCore4 双核心板_ARM】例程二