gpt4 book ai didi

c++ - C++中变量和指针的区别

转载 作者:行者123 更新时间:2023-12-01 13:42:35 24 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

去年关闭。




Improve this question




我开始学习C++。对于我的几个问题,我找不到合适的解释。

所以,根据我的理解,变量是 C++ 中的一个结构,它包含一个值。指针是一种可以存储内存地址的结构。

所以,这里是我的问题:

  • 变量甚至可以称为指针,因为它指向内存位置?除了与指针不同的是,它们只是指向一个固定的位置。
  • 如果上述问题的答案是肯定的,这是否意味着变量的值检索在内部像指针一样完成? (使用间接(*)和一元(&)运算符?
  • 为什么我们需要定义指向指针的数据类型?最后,它只是指向一个位置,它可以检索该位置的值。从内存中转换检索到的字节有用吗?
  • 从这里 tutorialspoint定义,指针初始化如下:int *ptr; .这是什么意思?该网站称间接(*)运算符用于从地址中检索值。这个运算符在声明中是什么意思?
  • 最佳答案

    Difference between variable and pointer in c++



    变量是表示对象或引用的名称。通俗地说,变量这个词也适用于它命名的对象。变量总是有某种类型。

    指针是一类类型。

    1. Can a variable be even called pointer


    变量和指针是不同的概念。一个不是另一个的超集。

    它们在抽象意义上有些相似,因为变量可以被认为是编译时间接的一种形式。

    1. Why do we need to define data types to pointers? ...


    因为指针允许间接。间接使许多事情成为可能,包括链表和搜索树等数据结构,以及面向对象的运行时多态性。

    At the end, it just points to a location and it can retrieve the value at the location.



    的确。从指定位置检索值的能力是非常强大的事情。

    1. ... pointers are initialized like this: int *ptr;. What does this mean? The website says indirection(*) operator is used to retrieve value from address. What does this operator mean in declaration?

    *也是乘法运算符。所以你不应该问,乘法运算符在这里做什么?

    答案是在类型名称中, *既不是间接运算符也不是乘法运算符。类型名称根本没有任何运算符。复合类型可以有 *在它们的名称中,符号表示指针类型。例如, T*是指向 T 的指针.
    int *ptr;是名称为 ptr 的变量的声明和类型是 int*即指向 int 的指针.

    关于c++ - C++中变量和指针的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61463976/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com