c++ 指针和内存
使用指针访问数组元素
c++语言中,指针和数组密切相关。
*****************************
int ia[] = {0,2,4,6,8};
int *ip = ia;// ip points to ia[0]
*****************************
指针的算数操作
与其使用下标操作,倒不如通过指针的算数操作来获取指定内容存储地址。
指针的算数操作和迭代器的算术操作以相同的方式实现。
使用指针的算数操作在指向数组某个元素的指针上加上或减去一个整数数值
就可以计算出指向数组另一个元素的指针值:
*****************************
ip = ia;
int *ip2 = ip +4;// ip2 points to ia[4]
*****************************
通常,在指针上加上或减去一个整数数值n等效于获得一个新指针,该新指针
指向指针原来指向的元素之后或之前的第n个元素。
c++读取数组时可以让它越界(实际就是个指针你指哪里,就可以知道里面的
内容是啥),java不行直接抛出异常。
思考
为什么指针ip+4指向的是ia[4]而不是+4bit呢?可不可以让一个指针指向ip+1
bit后的地址?要是不行,byte呢?