Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C for循环中的多个类型_C - Fatal编程技术网

C for循环中的多个类型

C for循环中的多个类型,c,C,有可能在C中执行类似的操作吗 for (int i=0, char c;;) 或者类型是否需要匹配?for循环第一部分的赋值有哪些不同的可能性?例如: for (int i,j,k=0;;) for (int i=0, j, k=2;;) for (int i=0, j=1, k;;) for (int i, j=1, k;;) ...etc... 这些规则与任何其他声明中的规则相同:您可以在一个声明中声明多个变量,只要它们的类型相同 如果您想要声明不同类型的变量,您将需要多个声明,因此您将

有可能在C中执行类似的操作吗

for (int i=0, char c;;)
或者类型是否需要匹配?for循环第一部分的赋值有哪些不同的可能性?例如:

for (int i,j,k=0;;)
for (int i=0, j, k=2;;)
for (int i=0, j=1, k;;)
for (int i, j=1, k;;)
...etc...

这些规则与任何其他声明中的规则相同:您可以在一个声明中声明多个变量,只要它们的类型相同

如果您想要声明不同类型的变量,您将需要多个声明,因此您将需要至少将其中一些从循环中提升出来

声明中引入的每个名称都可能附带或不附带初始值设定项,因此后面的四个示例都是有效的


主观上讲,将三个或更多的名称塞进循环前导的声明部分会使代码很难阅读和理解,因此迫切需要使用描述性变量名称,在循环之外更清晰地列出声明,进行重构。两个已声明的名称已经在推送它,但对于更复杂的迭代具有有效的、可接受的用途。

规则与任何其他声明中的规则相同:您可以在一个声明中声明多个变量,只要它们属于同一类型

如果您想要声明不同类型的变量,您将需要多个声明,因此您将需要至少将其中一些从循环中提升出来

声明中引入的每个名称都可能附带或不附带初始值设定项,因此后面的四个示例都是有效的


主观上讲,将三个或更多的名称塞进循环前导的声明部分会使代码很难阅读和理解,因此迫切需要使用描述性变量名称,在循环之外更清晰地列出声明,进行重构。两个已声明的名称已经在推送它,但对于更复杂的迭代有有效的、可接受的用途。

为什么不能

对于int i,字符c

这就是为什么你不能

int i,char c

在C语言中,分号分隔每条语句,而逗号将一条语句分成多个部分。例如,在

inti,n

只有一个初始化语句:int。如果您要编写int char,那将是不正确的。这是因为您有两个未被分号分隔的初始化语句。逗号也不能用于将两条语句转换为一条语句。虽然逗号可以将一条语句分成更小的部分,但它不能将两条语句合并为一条

for循环只能包含三条语句—一条初始语句、一条条件语句和一条增量语句。 因为初始化另一种类型的变量需要额外的语句,所以不可能这样做


PS:final语句不需要分号的原因是因为它作为迭代语句封装在圆括号内,for循环依赖于该语句。

无法使用分号的原因

对于int i,字符c

这就是为什么你不能

int i,char c

在C语言中,分号分隔每条语句,而逗号将一条语句分成多个部分。例如,在

inti,n

只有一个初始化语句:int。如果您要编写int char,那将是不正确的。这是因为您有两个未被分号分隔的初始化语句。逗号也不能用于将两条语句转换为一条语句。虽然逗号可以将一条语句分成更小的部分,但它不能将两条语句合并为一条

for循环只能包含三条语句—一条初始语句、一条条件语句和一条增量语句。 因为初始化另一种类型的变量需要额外的语句,所以不可能这样做

PS:final语句不需要分号的原因是因为它作为迭代语句封装在括号中,for循环依赖于该语句。

只要它们是相同类型的:与int i=0,a[10],*p=a;;,不完全一样。。。对于更模糊的编码样式。只要它们是同一类型:与int i=0、a[10]、*p=a。。。对于更模糊的编码风格。我建议查看了解更多信息:我建议查看了解更多信息: