指針相關(guān)

1、a和&a的區(qū)別

void main()
{
int a[5]={1,2,3,4,5};
int ptr=(int )(&a+1);
printf("%d,%d",
(a+1),
(ptr-1));
}
&a + 1: 取數(shù)組 a 的首地址,該地址的值加上 sizeof(a) 的值,即 &a + 5*sizeof(int),也 就是下一個(gè)數(shù)組的首地址,顯然當(dāng)前指針已經(jīng)越過了數(shù)組的界限
(int *)(&a+1): 則是把上一步計(jì)算出來的地址,強(qiáng)制轉(zhuǎn)換為 int * 類型,賦值給 ptr。
*(a+1): a,&a 的值是一樣的,但意思不一樣,a 是數(shù)組首元素的首地址,也就是 a[0]的 首地址,&a 是數(shù)組的首地址,a+1 是數(shù)組下一元素的首地址,即 a[1]的首地址,&a+1 是下一 個(gè)數(shù)組的首地址。所以輸出 2
*(ptr-1): 因?yàn)?ptr 是指向 a[5],并且 ptr 是 int * 類型,所以 *(ptr-1) 是指向 a[4] , 輸出 5。

2、指針數(shù)組和數(shù)組指針

指針數(shù)組:首先它是一個(gè)數(shù)組,數(shù)組的元素都是指針,數(shù)組占多少個(gè)字節(jié)由數(shù)組本身決定。它是“儲(chǔ)存指針的數(shù)組”的簡稱。int p1[10]
數(shù)組指針:首先它是一個(gè)指針,它指向一個(gè)數(shù)組。在 32 位系統(tǒng)下永遠(yuǎn)是占 4 個(gè)字節(jié), 至于它指向的數(shù)組占多少字節(jié),不知道。它是“指向數(shù)組的指針”的簡稱。int (
p2)[10]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • void* 類型指針:通用變體類型指針;可以不經(jīng)轉(zhuǎn)換,賦給其他指針,函數(shù)指針除外;malloc返回的就是void*...
    冰吉凌閱讀 3,527評論 0 18
  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評論 3 44
  • 轉(zhuǎn)自CSDN博客 原文鏈接:http://blog.csdn.net/xinyuwuxian/article/de...
    傻彬兒閱讀 997評論 0 0
  • 一、(一共三十題) 1.main() { int a[5]={1,2,3,4,5}; int *ptr=(int ...
    iOS_Alex閱讀 1,134評論 0 0
  • 又一次的說干就干,就是把八戒小朋友帶回家了。 八戒,男,2017.4.26上午9:43生,是個(gè)瓷實(shí)...
    半眼閱讀 509評論 0 0

友情鏈接更多精彩內(nèi)容