1樓:匿名使用者
你的判斷
條件不對 你的判斷條件是賦值語句,把1賦給k,一直成立,所以一直迴圈不會退出,然版後k++。然後救權死迴圈了。
裡面的逗號是逗號表示式, 逗號表示式就是,逗號的前後面的表示式都會執行一次。
在進for迴圈時,會先將i = 0,在k=-1.
2樓:花落へべ若相惜
其中判斷條件k=1是賦值,不是判斷,也就說每次判斷條件是否成立的時候都執行一下k=1,不為0,所以繼續迴圈
3樓:匿名使用者
因為k沒有限制
for(i=0,k=-1;k<100;k++)//像這樣的話k就不是無限了。只執行101次就退出迴圈了。
4樓:匿名使用者
逗號運算子
for第一個分號之前是初始化,也可這樣寫
i=0;
k=-1;
for(;k=1;k++){} // k=1要注意了,這裡是應該判斷,比如k<1或k==1;
c語言中,for 迴圈中哪些是逗號表示式?
5樓:明月看盡滄桑
for迴圈是根據while迴圈的格式變形,其對比如下:
所以在對應的while迴圈格式中,能用逗號表示式的地方在for中也能。
6樓:鬱_詩
首先,你所舉的例子中有三個逗號表示式:
a=1,b=0,c=0
a<=9,b<=9,c<=9
a++,b++,c++
(ps:表示式是不含分號的。)
下面這個程式會加深你對逗號表示式的理解:
#include
void main()
程式執行輸出:a=4,b=3
可以看出:
一,逗號表示式會對每個式子都執行運算,如"b=(++a,a++,a++);"這一行,執行完++a後,a的值就變為2了;
二,逗號表示式是從左到右運算的;(若從右到左,則b=4)三,整個逗號表示式的值為最右邊式子的值;
7樓:米水胡餘
這個for可以這樣理解:
for(表示式1;表示式2;表示式3)
表示式1 是賦值語句,相當於變數初始化
表示式2 是判斷語句
表示式3 相當於普通語句了
不知道這樣的解釋是否能接受?呵呵......
關於c語言中for語句的逗號表示式
8樓:it孤鶩
逗號運算子
(表示式1,表示式2,。。。。表示式n)
上面的逗號運算子的值為:表示式回n 的值那麼答開始 i=1
i++,i++
先計算左邊i++ 這時i=2, 再計算i++ =2 但是i=3
表示式的值為 2
9樓:無涯
i++,i++是一個語句,比如i原是1,則這個語句執行後,i是3.
親 懂了嗎
c語言程式中的for迴圈語句有時要用逗號表示式,這裡的逗號表示式具體有什麼作用啊?? 10
10樓:匿名使用者
是逗號嗎?好像是分號吧?!
for迴圈語句中一般為三個表示式,第一個代表初始值,第二個代表範圍,第****迴圈方式,分為++或--
11樓:匿名使用者
for的括號裡面,bai
兩個分號把三個條件du分隔開,逗號zhi的作用是一個條dao件中可以是幾個表示式,回這幾答個表示式從左到右的順序執行,最後返回的結果作為最後for的條件!
你需要看看c裡面各個標記符的作用和使用,才能理解。
12樓:匿名使用者
將幾行語句合併為一行(用逗號隔開的)
初始化指令或條件判斷指令或迴圈步長指令(就是for中兩個分號隔開的三條指令)其中一項(或幾項)不止一條時用逗號隔開(因為不能換行)
13樓:小☆☆白
逗號操抄作符主要的作用是可以在執行一bai步操作du前,可以執行另一個操作,而且又不
zhi影響返回dao值
#include
int main()
return 0;
}這個程式看明白了吧,
一般不建議這麼寫,可讀性太差
14樓:星空蛇語
逗號運算子是
baic中優先順序最低du的,被它分zhi隔的表示式將被從左到右依次求dao值。
專例如:
for (i = 0, j = strlen(s)-1; i < j; i++, j--)
這裡沒法用屬分號,否則會和for中用於隔開迴圈控制的三個語句的分號混淆在一起。
逗號運算子也適用於其他關係緊密的結構,如交換兩個變數的值可以寫成tmp = a, a = b, b = tmp;
但應該慎用,分號沒啥不好。
15樓:我可以抱你
for( i=0 ; i<10 ;i++)
sum = sum + i;
有逗號嗎?
c語言大神進 如圖,for語句中不是表示式3不是時逗號運算子嗎?i++,j--構成逗號表示式
16樓:烏龍踏雪
請注意 逗號表示式
是按順序執行 整個表示式的值是最後一個表示式的值你的for迴圈中 for(i=0;ii++,j--確實構成逗號表示式 其最終的值也確實是最後一個表示式的值,但是i++也會執行的 所以i一直在自增,而你的迴圈終止條件是i
下面說一下逗號表示式的值的問題
int i = 1, j = 1;
int k;
k = i++,j--;
假設有這個例子 那麼最後的結果是:
i,j,k的值分別為2,0,1
其中的k 得到的就是整個逗號表示式的值。
17樓:匿名使用者
想要死迴圈加一個while語句吧
18樓:簡簡單單
我怎麼沒看出是死迴圈呢!
請問c語言在for語句中不賦初值,沒有表示式1, 將會是什麼情況?沒有表示式3只有表示式1, 2時
19樓:匿名使用者
沒有表示式1,如果迴圈變數在前面初始化了,不會有任何問題
沒有3的話,如果也沒有在迴圈體內修改迴圈變數的值,往往是死迴圈
20樓:匿名使用者
表示式1和3是可選的 表示式2必須要有,,, 是什麼情況呢 反正就是每次迴圈結束 判斷一下表示式2 真就繼續走 假就跳出 至於你還能不能跳出來了 那就看for裡面的東西了
若有初始化語句int a 50,1,2,3,4值為3的表示式是A a
bint a 5 後陣列a的下標0 4,對應付元素值0 4 所以結果選擇b 因為陣列的起始下標為0,所以,值為3的表示式為b a a 2 1 選b,陣列起始下標為0,a 2 為2,1為3,a 3 為3,故選b 選b吧,中括號裡可以用 來表示 若有定義 int a 3 4 1,2 0 4,6,8,10...
求具體舉例說明C語言陣列的初始化和賦初值有何不同
你的書上好像錯了,所謂賦初值一般而言就是初始化啊從根本上說,其實初始化也並不是編譯階段完成,對於全域性變數 陣列 而言,一種是exe檔案中設定該程式的資料區中的為這個陣列存放空間中的值已經是初值了,當然這個值倒是編譯程式生成目標程式時設定的,程式執行載入時,給定空間中的內容直接拷貝到空間了,這個不佔...
c 中物件陣列的怎麼宣告和初始化,給個例子,具體說明一下,謝謝
問題好亂!一 getnext setnext 這兩個函式再明白不過了,設計者在類package中定義了一個package pnext 用來指向連結串列的下一個元素,getnext就是要取得下一個元素,自然返回該指標,setnext就是要給當前元素指定其下一個元素的地址,自然是給pnext賦值。二 在...