int 占4位 double 占8位
int [10] double [10]
为什么数组或者其他分配器的分配的内存,都是简单向前或者向后一位,就能到下个元素的位置呢,而不是按元素的所占的内存位数
int 占4位 double 占8位
int [10] double [10]
为什么数组或者其他分配器的分配的内存,都是简单向前或者向后一位,就能到下个元素的位置呢,而不是按元素的所占的内存位数
这样写代码不变得简单吗?c/c++编译器给程序员的福利,减轻程序员的难度,减少出错可能,如果按照元素占用内存大小加减指针,那么编程体验就像汇编语言,写代码费力而且容易出错。
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答469 阅读✓ 已解决
因为这样更方便操作指针, 指针本身的长度都是固定的, 32位系统下都是4字节,但指针是有类型的, 指针的类型决定了+1时在内存中移动的字节数. 所以语言的创作者在最初就这么约定的.