void sort(int a[])
{
if (a == NULL) return;
printf("%d error\n", a[1]);
}
int main(int argc,char *argv[])
{
int tt = 1;
sort(&tt);
printf("\n*(int *)(&tt + 1) = %d",*(int *)(&tt + 1));
//printf("\nsizeof %d", sizeof(char));
//printf("\ntt = %d %x", tt, tt);
//printf("\n&tt = %d %x", &tt, &tt);
//printf("\n &tt[1] = %d %x", &tt[1], &tt[1]);
//printf("\n*(int *)(tt + 1) = %d ", *(int *)(tt + 1));
//printf("\n*(char *)(tt + 4) = %d ", *(char *)(tt + 4));// + 2 * sizeof(int)
//printf("\n*(int *)(&tt + 2) = %d ", *(int *)(&tt + 2));
//printf("\n(int *)(tt + 4) = 地Ì?址¡¤1%d %x", (int *)(tt + 4), (int *)(tt + 4));
//printf("\n(int *)(&tt + 4) = 地Ì?址¡¤2%d %x",(int *)(&tt + 4), (int *)(&tt + 4));
while(1);
return 0;
}
1, 将整数作为实参传给数组形参a[1]整数下一个【int】内存的值
2, *(int *)(aa + 1)将aa作为首地址后加一个【int】大小内存的值(即加 1 * sizeof(int))
3, 数组是存储在由地址从小到大的一块连续内存块
4, 若aa[2]
*(int *)(&aa + 1) == aa[0]的地址加上以数组内存大小为单位加一的内存出储存的值