下面的代碼,我們總是使用,是正常的,分配有兩個等號
while(int c=getchar() != 'q');
如果變化的整數的指針像下面,編譯將上升一個錯誤。
#include <stdio.h>
int main(){
int* c=0;
if(int* a =c !=0)
printf("ok");
}
error: cannot convert `bool' to `int*' in assignment
這裏發生了什麼?似乎優先事項發生了變化。任何人都可以給我一個提示。如果我改變它,它會工作。
#include <stdio.h>
int main(){
int* c=0;
int* a;
if((a =c) !=0)
printf("ok");
}
'而分配'(INT C =的getchar()= 'Q'!):*我們總是使用並且沒問題*根據預期的語義是什麼可能是多餘的,但是這不會產生你似乎期望從第二個例子中得到的語義... –
是的,我完全錯了。 –