C++ 地址的问题

int 占4位 double 占8位
int [10] double [10]
为什么数组或者其他分配器的分配的内存,都是简单向前或者向后一位,就能到下个元素的位置呢,而不是按元素的所占的内存位数

阅读 1.5k
2 个回答

因为这样更方便操作指针, 指针本身的长度都是固定的, 32位系统下都是4字节,但指针是有类型的, 指针的类型决定了+1时在内存中移动的字节数. 所以语言的创作者在最初就这么约定的.

这样写代码不变得简单吗?c/c++编译器给程序员的福利,减轻程序员的难度,减少出错可能,如果按照元素占用内存大小加减指针,那么编程体验就像汇编语言,写代码费力而且容易出错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题