代码之家  ›  专栏  ›  技术社区  ›  Jasper

什么叫“正态”变量?

c++
  •  1
  • Jasper  · 技术社区  · 14 年前
    int* p;
    int& r;
    int i;
    double* p2;
    double& r2;
    double d;
    

    我正在寻找一个名称来使用“正常”变量,设置他们从指针和引用。我不相信这样的名字是不存在的(毕竟,我不是第一个想把它们与指针和引用区别开来的人。我确实觉得这是件很容易的事,我只是错过了这里。

    谁知道什么叫“正常”变量?

    附加信息

    我正在寻找一个名称,可以引用任何东西,但引用和指针,所以包括类。如果包括以下内容,同样的故事也可以进行:

    MyClass* p3;
    MyClass& r3;
    MyClass c;
    

    寻找一种方法来参考 i ,是指 d 还有一种方法 c . 我正在寻找一种方法来引用 d c 是的一部分。

    10 回复  |  直到 14 年前
        1
  •  2
  •   Jon Purdy    14 年前

    值类型 (价值变量)是我的第一个想法,但它似乎让一些人不舒服,所以 (非引用变量)也同样有效:指针和引用都是“引用类型”,因为它们引用另一个位置,而普通值类型则不是。

        2
  •  7
  •   tvanfosson    14 年前

    如果我明白你在说什么,我会称之为值类型。

        3
  •  7
  •   pmr    14 年前

    指针和引用也是变量。我认为这样说就足够了 i is a variable of type int p is a variable of type pointer to int . 如果他们是一个班级的成员 i is a member variable of type int 是最准确的描述。

    编辑:你的问题没有明确的答案。 int 会是一个 fundamental type compound types . 正如你所说的,这对你的情况毫无帮助

    A* a;
    int* b;
    A c;
    

    仅由复合类型组成。但你要强调的是你使用指针。说吧。

        4
  •  3
  •   Mike Seymour    14 年前

    • 基本类型 ,内置值类型,例如 int double
    • 复合类型 ,包括指针和引用,还包括数组、函数、类、联合和枚举。

        5
  •  1
  •   Yuval Adam    14 年前

    它们只是变量。不是 指针 而不是 参考文献 变量 .

        6
  •  1
  •   Johannes Schaub - litb    14 年前

    这个名字让我可以说,我到处都在使用指针,但是在很多情况下没有理由这么做,所以我应该尽可能地把它们改成s。

    在我看来,你更倾向于“通过复制”或“复制”而不是“通过引用”或“引用”。您可以通过值传递指针这一事实使得无法使用绝对术语,但必须使用与用例相关的术语:

    int **p;
    

    这是用于更改类型的指针的变量吗 int* (那么它将是“通过引用传递”,意思是您要修改被引用者。为了说明使用了指针,您可能也希望使用术语“passbypointer”,或者这个变量只是用来保存类型为的值吗 int** (那么在复制这样一个值的意义上,它就是“传递值”)?

        7
  •  0
  •   DanDan    14 年前

    值或变量。

        8
  •  0
  •   bta    14 年前

    我通常称之为“纯ol'data”(POD)变量,在引用 struct int float

    我也听说过这种类型的变量叫做“具体”变量。我想我们要做的区别是这些变量

        9
  •  0
  •   Daniel Trebbien    14 年前

    i d 物体 p , p2 ,以及类类型的对象,例如 MyClass c;

    我个人喜欢打电话 , p 对象,尽管对于其他语言(如Java)的程序员来说可能有点混乱,在Java中,它们被称为 基本变量 用这个词 物体 为类的实例保留。

    而不是

    我到处都在使用指针,但是在很多情况下没有理由这样做,所以我应该将它们改为<正态变量>只要有可能,都可以。

    我想说:“我到处都在使用指针,但是有很多情况下没有理由这么做,所以我应该尽可能地删除间接层次。”

        10
  •  -1
  •   Liu Yue    14 年前

    我想我们应该把它们叫做物体。我想没必要那么严格。

    考虑:

    typedef int *, pint;
    pint foo;