int *ptr=(int *)(&a+1)

昨晚有小夥伴問了一道題,感覺挺經典的。    1 int a[5] = {1, 2, 3, 4, 5}; 2 3 int *ptr = (int *) (&a + 1); 4 5 printf("%d %d \n\r", *(a + 1), *(ptr - 1) ); 從內存分佈的角度來解析:  &a和a做右值時的區別: &a是整個數組的首地址,而a是數組首元素的首地址。這兩個在數字上是相等的
相關文章
相關標籤/搜索