由于某些我无法理解的原因,当我在CMD
中执行时,该程序会保持循环。
#include <stdio.h>
int main() {
char array [] = {'b','f','r','o','a','u','v','t','o','\0'};
int grootteArray = sizeof(array);
int grootteChar = sizeof(char);
int lengteArray = grootteArray / grootteChar;
int i;
for (i = 0; i < lengteArray + 1; i + 2) {
printf("%c", array[i]);
}
return 0;
}
答案 0 :(得分:8)
每次循环后,您的计数器变量保持不变。您需要通过分配新值来增加它:
for (i=0; i<lengteArray+1; i=i+2) //change to this
答案 1 :(得分:7)
因为i
永远不会改变。您应该将i + 2
分配给i
:
for (i=0; i<lengteArray+1; i = i + 2) {
↑
您编写它的方式对i
的值没有影响,它只计算i + 2
并且对此值不执行任何操作。
你得到了无限循环,因为i
设置为0
而且它总是0
..所以一旦i < legteArray + 1
,它就会像那样。
答案 2 :(得分:2)
i
未在您循环中修改。此外,i < lengteArray + 1
将引导您打印垃圾值和未定义的行为。
for (i = 0; i < lengteArray; i++){
printf("%c", array[i]);
}
如果您有兴趣在每次迭代中将i
递增2,那么您可以使用i += 2
for (i = 0; i < lengteArray; i += 2){
printf("%c", array[i]);
}
答案 3 :(得分:2)
永远不会更改i
的值。
试试这个: -
for (i=0; i<lengteArray+1; i = i+2) {