for文の;で区切られる3つの要素は文扱いになるのですか?
すみません。昨日、某巨大掲示板で質問したのですが、アクセス規制喰らったので。。ここで聞かせてください。C言語を色々と実験中の者です。
int a[]={1,2,3,0}, *p=a-1;
for(;*p++;){ // 何らかの処理 }
とすると、*pが終了条件に当てはまってないか確認されてからp++されるということをしりました。
これは printf("%d", *p++); の一文がまず*pの値が(インクリメントする前の値が)%dに代入され表示されて、そのあとにp++でインクリメントされるのと似ています。というか、動作は一緒です。これは、後置インクリメント演算子は、その一文が評価されてから、インクリメントされるということですが。
そうすると前述のfor(;*p++;)のp++;の部分も文と考えれらるような気がするのですが。。;で区切られていますし、やはり文法的に言うと文になるのでしょうか?
マルチになるのかもしれませんが、よろしくお願いします。某巨大掲示板をプロバイダ規制喰らったので。。
お礼
おぼろげながらわかったような気がしました。有難うございました。