1樓:匿名使用者
對於while(c) ,c為0時,終止迴圈,非0時,繼續。
同理,對於while(*str) ,*str為0時,退出迴圈,非0時,繼續。
同樣,對於while(str) ,str為0時,退出迴圈,非0時,繼續。
0和非0是c語言判定“真”與“假”的惟一標準。對於字串而言,串結束符'\0'的ascii值是0,其他字元的ascii值都大於0,所以字串處理函式(如 strcpy(),strcmp(),strcat()等)總是使用以'\0'結束的字串。
舉個例子。編寫字串拷貝函式,功能類似與系統函式strcpy(char *d, char *s);。
// 版本1
char *strcopy(char s, char t)
s[i] = '\0';
return s;
}// 版本2
char *strcopy(char s, char t)
// 版本3
char *strcopy(char s, char t)
2樓:匿名使用者
while ( *str )相當於while ( (*str)!=0 )這樣迴圈滿足的條件就是在str沒有指向字串結尾的0時進行。
while ( str )相當於while ( str!=null )是對指標本身是否有效進行判斷,一般在開設指標時會寫:int *str=null;如果判斷str的內容不是null的話,該指標一定是被初始化好了的,可以使用,否則就是非法指標。
3樓:匿名使用者
就是判斷一下str指向的資料,進行while迴圈啊
下面那個是死迴圈吧,因為str是指標,儲存的資料時不可能為零的
4樓:匿名使用者
while(*str) 是指str這個指標指向的int型元素是否為0,
while(str) 是指str這個指標本身是否為null。
while(*str)在c語言中表示什麼意思
5樓:匿名使用者
如果*str是字元型,則表示*str不為\0的時候做迴圈
如果*str是數值型,則表示*str不為0的時候做迴圈
6樓:匿名使用者
當str所指向的資料非0開始第一次迴圈,判斷第二次str所指向的資料是否為0,如果為0,則跳出迴圈,如果非0則繼續迴圈。。。
且如果*str是字元型,則表示*str不為\0的時候做迴圈
如果*str是數值型,則表示*str不為0的時候做迴圈
while(*str1)迴圈結束的條件是什麼
7樓:匿名使用者
while(*str1)相當於
while((*str1)!=0)
那麼當*str1==0的時候就結束了
8樓:匿名使用者
如果str1的值是1,執行while括號內的語句,否則跳出
9樓:匿名使用者
*str1 為0,也就是\0,非0都會執行括號內,不只是1
10樓:禮名刑秋寒
while
(str1[i])
其實就是while(str1[i]!=0)在c語言中!=0是可以省略不寫的,
在字串迴圈中,經常這麼寫
因為字串的結尾是0,所以不等於0時迴圈,等於0時就停止了
c語言問題,p是指標,我在一段**裡看到這個while(p){}; 這個p作為判斷條件是什麼意思?
11樓:匿名使用者
p如果不為零就一直執行,也就是p不為null。
12樓:匿名使用者
意思就是當p!=0的時候,可以一直進行,在上下文中應該有p=0或者其它等效的操作。
13樓:匿名使用者
p 不為null 就一直迴圈啊
C 新手求解一些基礎問題,c 問題,新手求解
lz你好 include是一個包含命令,它的作用是將檔案iostream的內容包含到該命令所在的程式命令中,代替該命令列。檔案iostream的作用是向程式提供輸入或輸出時所需要的一些資訊。iostream是i o stream三個詞的組合,從其形式就知道他是代表 輸入輸出流 的意思.using n...
簡單的C 問題。新手不懂,乙個簡單的C 問題。新手不懂。。。。
將s設定為乙個較大的陣列,比如說s 100 將每次計算的面積,按照排序演算法儲存進去。增加乙個變數記錄輸入的次數。到輸入結束之後,按照順序輸出。演算法是對的,就是要按照老師要求的格式再修改一下。當年學c 也是這樣一步步走出來的。建立乙個陣列,將每次得到的s值存入該陣列,全部存完後進行氣泡排序,不排序...
新手求教 c語言素數判斷演算法,用C語言如何判斷素數?
就是判斷從2開始到乙個數的平方根中若不能被他整除,那麼該數就是素數 網上 是若能整除則跳出,所有條件不能整除則輸出是素數。他是只需要一種判斷,不滿足則跳出,那麼跳出後i n,所以可以用。你的 思路沒有錯,只不過網上沒有使用的優化的演算法,如果你想弄明白怎麼優化,那你需要在數學中找答案 獅子 網上的 ...