C语言里定义三变量 int a, b, s; 然后初始化a=123; b=456; 把最后改成 a=123,b=456;这样子对不?为啥?

如题所述

在C语言中,定义和初始化多个变量时,可以在同一行上进行初始化,也可以分开初始化,像这样:
int a, b, s;
a = 123;
b = 456;
或者:int a = 123, b = 456, s;
您提到的问题似乎是在初始化时有一个额外的逗号,如下所示:
int a, b, s;
a = 123, b = 456;
这会导致a和b分别被赋予123和456,而s仍然没有被初始化。这是因为在C语言中,逗号用于分隔语句,因此a = 123 和 b = 456 被视为两个独立的赋值语句。这也解释了为什么s没有被初始化。
要同时初始化a和b,您应该使用等号,而不是逗号,如下所示:
int a = 123, b = 456, s;
这样做将正确初始化a和b,而s将保持未初始化状态,您可以在后续代码中为其赋值。追问

您好,感谢您的认真回答,我想问的问题是
int a, b;
a = 123;
b = 456;这样子定义变量之后再初始化是正确的。
如果我写成这样子
int a, b;
a = 123, b = 456;把两个初始化的变量写在一起,用逗号隔开,这样子这个语句对吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-09-22
在C语言中,定义多个变量并同时初始化它们的方式是合法的,但要注意语法的正确性。在你提供的代码中,int a, b, s; 这一行只是声明了三个整数类型的变量 a、b 和 s,但没有对它们进行初始化。
然后,你提到了初始化 a 和 b,分别赋值为 123 和 456。这是合法的,而且是正确的初始化过程。所以,以下代码是有效的:
cCopy codeint a, b, s;
a = 123;
b = 456;

然而,你后面提到的 "把最后改成 a=123,b=456;" 并不是语法上的正确方式。在C语言中,声明和初始化变量通常是在不同的地方进行的。你可以在变量声明后的任何地方给它们赋初值,但不应该将这种初始化写在声明语句中,因为C语言不支持这样的语法。
如果你希望将初始化与变量声明放在一起,可以使用以下方式:
cCopy codeint a = 123, b = 456, s;

这样,a 和 b 就在声明的同时被初始化为 123 和 456,而 s 仍然只是声明了但未初始化的。这是C语言中的有效语法。追问

你好,大佬我的意思是这样子的。
int a,b;
a=143;
b=56;
这样子定义变量并初始化是正确的,我的意思是想把后面两个初始化的语句合在一起,改成:
int a,b;
a=143,b=56;
这样子改的话,最后一句有语法错误吗?我想问的是初始化的话a=143,b=56;这样子写对吗?谢谢

追答

emm

本回答被提问者采纳