-1

我在创建服务器时用 C 语言进行系统编程。有一个错误导致无法正确返回结果的严重问题。我通过线分离解决了这个问题,但不明白为什么这解决了这个问题。

导致严重问题的原始代码

 int Bytes, Size  = cache[index].len;

解决问题的新代码

 int Bytes  = cache[index].len;
 Size = Bytes;

我的原始代码和新代码有什么区别?它们不是相同的吗?

4

1 回答 1

2

它们根本不一样。第一个代码:

int Bytes, Size = cache[index].len;

声明两个变量,BytesSize,都是int; Size被初始化为 的值cache[index].len并且Bytes未初始化(它的值是不确定的)。

第二个代码(我int在第二行插入以使其成为带有初始化程序的声明,因为我假设这就是您的意思):

int Bytes = cache[index].len;
int Size = Bytes;

声明相同类型的相同的两个变量;但在这里,它Bytes被初始化为 的值,cache[index].len然后Bytes被复制到Size.

于 2018-12-09T03:38:57.477 回答