c - C 中声明错误终止与声明语法错误之间的区别

标签 c

我想知道这种差异何时发生声明终止错误和声明语法。

我的声明终止错误代码:

int a=12,245;

以及声明语法错误的代码:

int a=10 20 30;

最佳答案

你可以说

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--)

关于c - C 中声明错误终止与声明语法错误之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51365482/

相关文章:

c - 在C中使用fread读回数据后出现错误值

c - 在 Solaris 5.10 上使用集群()

c - fork()返回0,但是子进程getpid()!=0。为什么?

c - 如何使用 C 中的系统调用创建等效的 linux "nl"命令?

c - 链接列表的插入排序遇到问题。当我尝试按升序对列表进行排序时,仅打印列表的第一个值

C - 将未初始化的变量传递给函数

c - C 中检查哪些指针未释放的方法

c - 如何将 scanf 和 if 与字符串一起使用? (非常基础)

c - 为什么向链表添加新值会覆盖现有内容?

c - 将结构划分为私有(private)和公共(public)部分?