int i=1,j=0,n=10,k;
do{
j+=i;
i<<1;
printf("%d\n",i);
// printf("%d\n",12<<1);
}while(i<=n);
printf("%d\n",j);
を有するシフト演算子作品(12 < < 1 = 24)が、i<<1
は0.JはI 0とNループ意志を変更continuously.Ifが増加しているままで行いますそれは正常ですが、i
のインクリメントは決して起こりません。と右シフト、whileループにおいて効果なし
いずれの方向にもシフトできても動作しません。
Typo 'i << 1'は' i << = 1'でなければなりません。コンパイラの警告を有効にしてください:警告が表示されます。たとえば、MSVCからの警告は*警告C4552です: '<<':演算子は効果がありません。副作用のある予想されるオペレータ* –
@WeatherVaneありがとう、私は将来の警告を見ていきます! –