我想知道何时会发生这种差异声明终止错误和声明语法。
我的声明终止错误代码:
int a=12,245;
和声明语法错误的代码:
int a=10 20 30;
答案 0 :(得分:1)
你可以说
int a = 12245;
您正在将a
初始化为整数12245。
你可以说
double a = 12.245;
您正在将a
初始化为浮点十进制数12.245。
如果您想使人们感到困惑,您也许可以说
int a = (12,245);
这就像说“我想将a
初始化为12,不,我是245”。 (a
最终将持有245)。
但是你不能说
int a = 12,245;
在C语言中,逗号可以用几种不同的方式使用,但是也有几种不能使用的方式。
在C源代码中,必须使用句号.
作为小数点,并且不能使用逗号将数字分组为数千或十万或其他任何数字。
您可以使用逗号来分隔函数调用中的参数,或者一次声明多个变量,或者使用逗号运算符。但是这些都完全不同,int a = 12,245;
最终并没有适合任何一个。
为完整起见,以下是函数调用中的参数分隔逗号:
printf("%d %c %s %f\n", 1, '2', "three", 4.5);
以下是逗号分隔多个声明:
int a = 12, b = 245;
以下是逗号运算符:
for(i = 0, j = n; i < j; i++, j--)
答案 1 :(得分:0)
Integer不能对10,3之类的浮点值进行录音,Integer只能存储180之类的自然数!如果要使用浮点值,请使用 float 或 double
答案 2 :(得分:0)
在C中没有区别。这两个程序均不符合该语言的语法。
C没有指定编译器产生的错误或警告消息的文本。大多数编译器会尽力产生错误消息,以帮助程序员理解错误是什么。有些人比其他人做得更好,但没有一个是完美的。
您正在使用的任何编译器,在其当前版本中,都会针对该代码生成两个不同的错误消息。它是如何决定产生哪个消息的,可能只有该编译器的作者才能告诉您。如果您认为一个或另一个错误消息严重误导您,则可以提交错误报告或正式投诉,如果您使用的编译器具有某种用户支持渠道,则您可以执行其中一项操作。