C - 仅执行一次循环的缩写

C.D*_*mer 2 c for-loop

我在Mac上用ANSI C编写了命令行实用程序,其功能是为单链表创建一个气泡排序数组.我声明了循环变量.

int a = 0;   
int b = 0;
Run Code Online (Sandbox Code Playgroud)

我在缩写样式中写了循环的冒泡排序(即,将变量初始化保留为空).

for ( ; a < size; a++)  
  for( ; b < size; b++) 
Run Code Online (Sandbox Code Playgroud)

这只在退出前执行一次.使用i变量填充数组的前一个for循环以相同的方式编写并按预期执行.冒泡排序循环的修复是将a = 0和b = 0重新放入.是否有原因导致缩写for循环无法执行?

sep*_*p2k 11

如果省略,b=0内循环将只运行一次,因为之后b已经等于大小.您需要在内循环的每次迭代中将b重置为0.