如何修复“必须将 * 或 -> 运算符应用于指针”?

How to fix "The * or -> operator must be applied to a pointer"?

提问人:Mikku Gray 提问时间:9/13/2019 最后编辑:Mikku Gray 更新时间:8/20/2022 访问量:2920

问:

我正在使用 Visual Studio 2019 研究 C# 中的赋值运算符,但由于错误代码 CS0193,脚本未运行。

首先,我更改了“+”后面的“+”添加符号的位置,就像那样 { c =+ a },但它仅适用于 add 和 sub。我想使用 { c *= a} 但出现以下错误。

            int a = 21;

            int c =+ a;

            Console.WriteLine("1. Value of c is {0}", c );

            Console.WriteLine("2. Binery of c is {0}", Convert.ToString(c, 2));

            Console.ReadLine();

好吧,根据我的书,它应该像 ( x -= y ), (x += y), (x *= y) 一样工作...... 但在 Visual Studio 2019 中的工作方式是 (x =- y)、(x =+ y)、错误、错误......

错误代码:CS0193

说明:必须将 * 或 -> 运算符应用于指针。

C# visual-studio-2019 赋值运算符

评论

0赞 Mikku Gray 9/13/2019
以上代码的输出为 1。c 的值为 21 2。c 的 Binery 是 10101
0赞 Andrew Morton 9/13/2019
你提到的书是什么?
0赞 D Stanley 9/13/2019
你希望做什么?int c *= a;
0赞 Mong Zhu 9/13/2019
“我改变了”+“的位置,在”=“等效符号后面添加符号”的意图是什么?你为什么要这样做?你期待什么样的行为?
1赞 Mikku Gray 9/13/2019
实验行为;p

答:

6赞 Brandon 9/13/2019 #1

运算符 结尾,而不是以 开头。所以使用 .==*=+=-=/=

键入解析为:int c =+ a

int c = +a; // evuivalent to: int c = a

键入时,该类型解析为:int c =* a

int c = *a; // error unless a is a pointer.
2赞 D Stanley 9/13/2019 #2

您正在混合声明和分配。您只能对已声明的变量使用 (and and and )。因此,您需要执行以下操作:*=+=-=++

int a = 21;

int c = 1;

c *= a;