1樓:
要不要分號要具體看while()後面有沒有「體」,不能一概而論。從這裡的情況看()不應該有「體」,所以()後得有分號。
在while(*q++=*p++)後加乙個分號寫成while(*q++=*p++);,二者就是等價的。
與while(*p!='\0') *q++=*p++;是不等價的:前二者把'\0'拷進了q所指的陣列,且使q和p都指向了'\0'後面的乙個元素,而while(*p!
='\0') *q++=*p++;並沒有把'\0'拷貝進去,使q和p都指向了'\0'。
2樓:張未來
不用加分號的,while裡面的是乙個迴圈判斷語句,也就是乙個布林表示式,不需要加分號,另外你說的內幾個表示式都是不等價的,比如int a = 3; ++a和a++是不一樣的,在乙個語句中,++a是先自加,再參與計算,a++是先將a參與計算,語句結束後再將a自加。
3樓:聽不清啊
這裡的while((*q++=*p++)!='\0')是漏了分號,應該是while((*q++=*p++)!='\0');
下面的也是這樣,漏了分號。
while((*q++=*p++)!='\0') ;它和while(*q++=*p++);等價。
比 while(*p!='\0') *q++=*p++;的最後會多複製乙個'\0'。
while(*p!='\0') { n++; p++;這裡的n++是什麼意思
c語言中,對字串的操作,while(*p)和while(*p!='\0')的作用是一樣的嗎???
4樓:水鄉判官
呵呵,是一樣的...while語句的括號裡面是迴圈條件,只有真假之分...p是指標型別變數...而『\0』代表的就是指標型別的零值...
5樓:匿名使用者
作用一樣,但是可讀性不一樣
while(*p) :程式設計師只關心*p為真還是假,或者*p是否為0
while(*p!='\0'):程式設計師會預設把*p看成是乙個字元,p是個字元指標
6樓:匿名使用者
一樣吧,不過感覺*p比較好理解一些,呵呵,可能是比較習慣c++的原因吧
求問c語言這句是什麼意思?急! for(q=a;*q!='\0';q++) q--; 10
7樓:匿名使用者
q是字串的指標位址,
這是迴圈判斷字串指標是否結束,
如果沒有結束,就指標位址+1
8樓:戶哲茂
如果 *a!= '\0' 死迴圈
請問這裡what you are like是什麼意思?為什麼不是what you like
what u are like 這裡like是像的意思 你在生活中是像什麼樣的 what u like 這裡的like是喜歡的意思 原文並不是喜歡的意思 殺盡丶灬天下 what are you like意思是你長得像什麼 what are you like與what do you like區別 曉龍...
c語言程式設計請問這個程式中clrscr為什麼有問題
你可能和糾結,為什麼clrscr 功能沒有用,編譯器還報錯,對不?呵呵 其實,有兩個問題 1 clrscr 是在標頭檔案conio.h下的函式,原型是void clrscr void 於是,你 好像懂了 便在你原有程式的基礎上加了一個 include 但是很不幸,編譯器依然報錯,甚至發出 clrsc...
請問c語言的語句,請問乙個c語言的語句
可以理解為賦值的意思,c語言的賦值操作使用 所以,1 a的意思是 a 1 2 b的意思是 b 2 a b a的意思是 a a b 或者 a b 是c語言的乙個操作符,表示自加。b 1 b的意思是 b b 1 或者 b 或者 b 都可以。後面的問題看不太清楚。求1 2 100寫出程式來,大概是這樣子i...