指针存储空间个数
在64位系統下,分別定義如下兩個變量:char *p[10]; char(*p1)[10];請問,sizeof(p)和sizeof (p1)分別值為__。
char p[10] 是指針數組,數組里存放了10個指針,在64位系統下指針占8個字節,所以sizeof(p) = 10 8 = 80.
char (*p1)[10]是數組指針,p1是一個指向存放10個char類型的數組的指針,所以sizeof(p1) = 8.
重點理解p跟誰結合了,跟[]結合,則p就是一個數組;跟*結合,p就是一個指針;
首先的優先級一樣,均大于*
char *p[10],p與[]結合,所以p就是一個數組,數組的元素比較特殊,是指針,指針大小為8,所以是10*8=80;
char(p1)[10],與結合,所以是一個指針,大小為8
總結