运算符'&'可以用两种方式,分别是: int a; scanf("%d",&a);
和printf("%d",1&2)
。
但在第一种情况下是地址运算符,在第二种情况下是按位运算符。我知道C语言中没有运算符重载,那么它是如何工作的呢?同时请说明C++中的情况。
运算符'&'可以用两种方式,分别是: int a; scanf("%d",&a);
和printf("%d",1&2)
。
但在第一种情况下是地址运算符,在第二种情况下是按位运算符。我知道C语言中没有运算符重载,那么它是如何工作的呢?同时请说明C++中的情况。
*
表示“声明为指针”,因此它不仅仅是表达式中的运算符。 - Some programmer dude当应用于lvalue(在这种情况下是一元运算符)或在具有两个操作数的数学表达式中使用时,它具有简单的不同含义。
语言首先根据其操作数来分配运算符。其中一类可以内置重载。你的例子是关于第一类的。取地址是一元运算符,位与是二元运算符。当你在C++中编写运算符函数时,你将看到这两个类别之间的差异。 运算符重载是语言内置的。例如简单的算术加法运算符。它可以使用简单的一字节整数数据以及浮点数(显著性和指数)进行计算。基本上这就是数学。因此,在制作C语言时,他们只是将这些转化为功能。在C规范中,您无法找到“overloading”作为此行为的关键字。根据他们的说法,在公式表达式之后,任何东西都必须表示为不同的函数。每个函数应基于其提供的功能命名。当C++引入创建新类型的机会时,带有基本n-nary形式的运算符允许操作新类型。简而言之,C的哲学是不同的。
&
可以在以下两种方式中都使用:int a; scanf("%d",&a);
和printf("%d",1&2)
。&
也可以用于声明引用。int x = 24;
int& r_x = x;