请教c 里面地址的一个基础知识

下面是关于二叉树的代码----pos代表了根据前序遍历pre_str确定了根节点在中序遍历中的位置.

int pos = strchr(in_str, pre_str[0]) - in_str;

我知道指针就是代表地址的一个 unsigned int, 我想问的是这样直接用指针加减来得到的位置为什么不考虑到 sizeof(int), 是说这些指针都是和数据类型的size无关的吗? 有错误的话请大家指正下.

阅读 2.1k
1 个回答

指针的加减就已经把偏移量算进去了,比如int*的指针加n,其内存地址就是加n*sizeof(int),并不是按照内存地址直接来加减的。

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