c语言中for循环for(a=1;a<5;++a)和for(a=;a<5;a++)是否可以互换?

来源:百度知道 编辑:UC知道 时间:2024/07/02 07:22:04
它们是等价的吗?为什么在冒泡法排序问题中同时出现for(a=0;a<N;a++)和for(a=1;a<N;++a)

1.它们不是等价的,for(a=;a<5;a++)连初始对a的赋值都没有是错误指令。
2.a++和++a的差别在于运行顺序,a++是先把a加上1再运行循环体,而++a是运行完循环体再把a加上1。所以for(a=0;a<N;a++)和for(a=1;a<N;++a) 是等价的。

这种差别是a++和++a的优先级高低有关的a++正好比++a高了一级,相关可以查阅c语言程序指令的优先级排序。