【问题标题】:C++ lack of logic on pointer initialisation & use [closed]C ++缺乏关于指针初始化和使用的逻辑[关闭]
【发布时间】:2014-02-28 21:07:28
【问题描述】:

这不是逻辑:

int *ptr = &otherInt;

当我们这样做时,ptr 给出 otherInt 的地址,*ptr 给出 otherInt。

但我们明确写出 (*ptr) 等于地址 *ptr = &otherInt

从逻辑上讲,*ptr 应该给出地址,ptr 应该给出 otherInt。

你不觉得吗?

【问题讨论】:

标签: c++ logic


【解决方案1】:

我认为你完全错了。考虑一下:

int *ptr;
int otherInt = 10;

ptr = &otherInt; // Notice this line.

星号是声明的一部分,而不是赋值。

【讨论】:

  • 是的!这就是为什么我更喜欢写:int* ptr;
  • 但是如果你在一行中声明了多个变量,那就更令人困惑了......
  • '如果你在一行中声明了多个变量' 无论如何,目前大多数相关的 c++ 编码规则强烈反对
  • 因此应该在大小缓冲区中分配微小的编译时间常数。然而人们会这样做。而且在大多数情况下忘记释放它。
猜你喜欢
  • 2023-01-22
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 2012-05-11
  • 2023-03-13
相关资源
最近更新 更多