指针在32位系统下占四个字节,内部存储的是一个地址,这个地址可能是各种数据类型的,甚至函数的;
数组和指针不同,例如int arr[5];其中arr代表数组第一个元素的开头地址,注意它和指针的区别,它是没有分配存储空间的,相当于一个常量;&arr代表整个数组的开头地址,虽然从数值上与arr相同,但是如果用arr+1和&arr+1就能看出不同来了(你可以自己试下);
二维数组其实是一维数组的扩展,如int arrB[4][5];其arrB[i]的含义和一位数组的arr是一样的;而arrB则是元素为将五个int型数据看成一个整体的长度为4的一个数组,所以其含义是开头一个元素(即arrB[0][0]到arrB[0][4]整体)的开头地址;
指向指针的指针没啥好说的,也是四个字节(32位),只不过存储的是另一个指针,用起来和数组相似,但是它是占据内存空间的。