C++ 声明期间初始化引用

C++ 声明期间初始化引用,c++,c,C++,C,为什么在初始化过程中需要初始化参考文件。如果未初始化,则会抛出错误。Is it const数据应始终使用值初始化。为什么它只包含常量,而不需要在声明期间初始化变量 编辑: #include<stdio.h> int main() { int a=10,b=12; int &c=a; printf("%d\n",a); c=b; printf("%d\n",a); printf("%d\n",c); return 0;

为什么在初始化过程中需要初始化参考文件。如果未初始化,则会抛出错误。Is it const数据应始终使用值初始化。为什么它只包含常量,而不需要在声明期间初始化变量

编辑:

#include<stdio.h>

int main()
{
    int a=10,b=12;
    int &c=a;
    printf("%d\n",a);
    c=b;
    printf("%d\n",a);
    printf("%d\n",c);
    return 0;
}
#包括
int main()
{
INTA=10,b=12;
int&c=a;
printf(“%d\n”,a);
c=b;
printf(“%d\n”,a);
printf(“%d\n”,c);
返回0;
}

这是一个c程序,我用它作为参考。我错了吗?

事情就是这样。有些指针不需要初始化,以后可以分配给。引用可以被认为是对象的同义词——你不能有一个空的同义词


通常,您必须初始化以后无法分配的任何内容,例如常量和引用。如果允许您而不是初始化它们,那么应该允许您在以后为它们指定一个新值,这会破坏整个目的

这就是它的方式。有些指针不需要初始化,以后可以分配给。引用可以被认为是对象的同义词——你不能有一个空的同义词


通常,您必须初始化以后无法分配的任何内容,例如常量和引用。如果允许您而不是初始化它们,那么应该允许您稍后为它们分配一个新值,这会破坏整个用途在C中没有引用。您可能是指地址操作员:

在C中没有引用。您可能是指地址操作员:

您发布的代码无法编译为C程序,因为C中没有引用

要将其编译为C,您必须修改它:

#include<stdio.h>

int main()
{
    int a=10,b=12;
    int *c=&a;
    printf("%d\n",a);
    *c=b;
    printf("%d\n",a);
    printf("%d\n",*c);
    return 0;
}
#包括
int main()
{
INTA=10,b=12;
int*c=&a;
printf(“%d\n”,a);
*c=b;
printf(“%d\n”,a);
printf(“%d\n”,*c);
返回0;
}
<> P>关于C++引用,引用需要初始化的事实是指针和引用之间的主要区别之一。
指针可以为NULL或无效,引用不能(实际上,您可以生成无效引用,但编译器应该警告您)。在某种程度上,引用用作别名。通过编写
inta;int&b=a,现在一个变量(或内存位置)有两个名称。

您发布的代码不能编译为C程序,因为C中没有引用

要将其编译为C,您必须修改它:

#include<stdio.h>

int main()
{
    int a=10,b=12;
    int *c=&a;
    printf("%d\n",a);
    *c=b;
    printf("%d\n",a);
    printf("%d\n",*c);
    return 0;
}
#包括
int main()
{
INTA=10,b=12;
int*c=&a;
printf(“%d\n”,a);
*c=b;
printf(“%d\n”,a);
printf(“%d\n”,*c);
返回0;
}
<> P>关于C++引用,引用需要初始化的事实是指针和引用之间的主要区别之一。
指针可以为NULL或无效,引用不能(实际上,您可以生成无效引用,但编译器应该警告您)。在某种程度上,引用用作别名。通过编写
inta;int&b=a,现在一个变量(或内存位置)有两个名称。

您能澄清一下吗?你是在谈论引用,但是你把这个问题标注成C语言问题。但是我们也可以在C中使用引用。C++C++中的引用是不同的。如果是这样,请解释我。我不知道。引用不存在于C.和引用中。代码>对吗?编辑:这是你的问题,它需要编译为C++工作,因为引用不存在于C.@乔:我们在C中调用什么?它指的是地址而不是引用。我对引用的理解是“任何前面有&”的变量,它是常量指针,是变量的别名。请帮助我理解!编辑:我在VisualStudio中编译-2008@Angus:在C++中,<代码> int和c= a;<代码>声明
c
作为对
d
的引用。然而,在类似
int*p=&a
表示“获取的地址”。在C语言中,只有第二种用法是有效的。你能澄清一下吗?你是在谈论引用,但是你把这个问题标注成C语言问题。但是我们也可以在C中使用引用。C++C++中的引用是不同的。如果是这样,请解释我。我不知道。引用不存在于C.和引用中。代码>对吗?编辑:这是你的问题,它需要编译为C++工作,因为引用不存在于C.@乔:我们在C中调用什么?它指的是地址而不是引用。我对引用的理解是“任何前面有&”的变量,它是常量指针,是变量的别名。请帮助我理解!编辑:我在VisualStudio中编译-2008@Angus:在C++中,<代码> int和c= a;<代码>声明
c
作为对
d
的引用。然而,在类似
int*p=&a
表示“获取的地址”。在C语言中,只有第二种用法是有效的。