C++中指针和数组基本等价的原因在于指针算术和C++内部处理数组的方式:将整数变量加一后,其值将增加1:将指针变量加一后,增加的量等于其指向的数据类型的字节数: 指针中存储的是地址,地址在形式上和整数相似,但是意义完全不同,整数可以加减乘除,但地址相乘等操作完全没有意义: Eg: int *p; P = 0xB8000000; 上面会报类型不匹配的错误,原因在于C++不知道这是一个数字还是一个地址,所以需要先进行强制类型转换: 我们常说数组名就是指针,但这么说只是为了理解,准确的说,两者还是有…
(3)指针和数组 在c中指针和数组似乎有着千丝万缕的关系.事实上它们不是一回事:指针是指针,数组是数组.两者不同样. 说它们有关系,只是是由于常见这种代码: int main() { int array[] = {1,2,3,4,5}; int n = sizeof(array) / sizeof(int); int *p = array; int i; for (i = 0; i < n; i++) printf("p[%d]...%d\n", i, p[i]); system…