在C語言中什麼語句後要加分號,什麼語句後不用分號

時間 2021-05-02 11:24:25

1樓:融惜珊實傑

分號代表語句結束假設你有乙個陣列int

a[5];那麼你可以這樣給陣列賦值for(inti=0;i<5;i++)

a[i]=i;這個是沒加分號的,那麼a[0]=0,a[1]=1....a[4]=4;for(inti=

0;i<5;i++);這樣加了分號,就代表結束了,相當於迴圈只執行了i,然後就退出迴圈了

a[i]=i;//這樣相當於只有a[4]=4;

c語言中,分號代表語句結束

2樓:匿名使用者

不要的幾種情況:

1。#include ···

2。#define ···

3。if()後面

譬如:機構體struct st

但是要注意 如:struct studentst;(這兒給student取了乙個「小名」st,要加「;」)

3樓:匿名使用者

一些固定格式的外圍不用,結束句不用。其餘基本上都要

4樓:匿名使用者

乙個語句的結束都要加分號,不加分號的不是語句

5樓:

flash的actions語句句末不用加分號

6樓:匿名使用者

預編譯語句不用加分號.

#incclude

#ifdefine x

等.其它就是花括號後不用加分號.

if(i>0)這裡不用.

另外就都要了.

7樓:夢803柯

每乙個語句的末尾都要加分號

8樓:匿名使用者

沒記錯的話{}只有do

{}while ;和

struct student

{} xuesheng;要

9樓:匿名使用者

這個嘛,多上機操作就記住了

在c語言中,for語句的後面加分號和不加分號有何不同,該分號有什麼作用?

10樓:大野瘦子

加分號,表示這個迴圈是空語句,除了執行for()括號裡的,什麼都不幹,然後就執行下一行。

不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。

分號代表語句結束。

例如:for(i=0;i<100;i++);

就等於:

for(i=0;i<100;i++)

11樓:翲燚

for語句有兩種用法,一種是跟單個語句,一種是跟**體

在跟單個語句時,由於在c語言語句預設是以分號結尾的,程式會將for (;;)之後直到第乙個分號的**視為迴圈體來執行,例如下面三種情況:

for (int i=0; i<10; i++) foo1();

for (int i=0; i<10; i++)

foo1();

for (int i=0; i<10; i++)

foo1();

上面三種寫法,都是呼叫foo1()函式10次。在下面一種情況裡,程式只會將foo1()函式迴圈呼叫10次,而不會將foo2()列入迴圈中,因為分號for語句在foo2()之前就已經結束了:

for (int i=0; i<10; i++) foo1(); foo2();

特別要提的是下面的兩種寫法,這兩種寫法的for語句的迴圈體都為空,程式都不會將foo2()列入迴圈,因此foo2()只會執行一次。這也是初學者常見的書寫錯誤。

for (int i=0; i<10; i++) ; foo2();

for (int i=0; i<10; i++) ;

foo2();

除了跟單個語句外,for語句還可以跟 圈起來的**體,如下面的例子:

for (int i=0; i<10; i++)

在這種情況下,for語句可以不以分號結尾,程式會將**體內的所有語句迴圈10次。

12樓:匿名使用者

for後面是個迴圈體 你可以理解為乙個語句塊for{}

平時是由一些語句組成的 如果直接加分號的話 說明不執行操作(空操作) 只做單純迴圈 沒有什麼意義 一般用在延遲函式裡

但這樣的寫法是不推薦的 因為很佔cpu 你可以試一下用三重迴圈 然後迴圈體只寫乙個分號 執行你會發現電腦記憶體一下子飆很高 最簡單的電腦病毒就是這樣做的 用很高次的迴圈 做無意義的操作 讓你的電腦執行很慢

13樓:逍遙的夢

for(i = 0;i<5;你所說的是for()後面那個分號嗎?如果是的話,他後面的分號是一定要的,但是如果分號直接寫在括號後面卻沒有其他語句的話,證明這個迴圈是沒有可執行語句的,如上面1.

第二個例子分號前面有個語句,就是每當括號裡的條件成立時,他就會執行一次。

14樓:匿名使用者

分號代表語句結束假設你有乙個陣列int a[5];那麼你可以這樣給陣列賦值for(int i = 0;i<5;i++) a[i]=i;這個是沒加分號的,那麼a[0]=0,a[1]=1....a[4]=4;for(int i = 0;i<5;i++);這樣加了分號,就代表結束了,相當於迴圈只執行了i,然後就退出迴圈了 a[i]=i;//這樣相當於只有a[4]=4; c語言中,分號代表語句結束

15樓:匿名使用者

c語言中";"表示一句的結束,長的句子可以分成多行寫,到最後才寫乙個";"

for語句中後面的分號也是如此,根據迴圈結構和你的需求不同,有時會寫分號,有時候換到下一行寫,還是有分號的。

16樓:匿名使用者

這個 其實每一項**後面必須要加「;」,但是如果for後沒有語句 就多加乙個「;」,代表那項**是空值 for ( i = 0; a[ i ] <= m; i++ ) ;;;;;;; 也沒人說你錯的

17樓:戀雲歌晨

剛試驗了一下,乙個是加分號乙個是不加分號的

18樓:想做乙隻喵喵喵

推薦回答中最後那個迴圈出來是i=5,而不是4

c語言中的每條執行語句都需要用分號結束嗎??

19樓:小夏在深圳

在 c 程式中,分號是語句結束符。每個語句必須以分號結束。它表明乙個邏輯實體的結束。

c語言中分號被用作為語句結束的標誌,如果在c程式中不小心多寫了乙個分號,那麼該分號也許會被視作乙個空語句;或者編譯器會因為這個多餘的分號而產生一條警告資訊,根據警告資訊的提示往往會很容易找到多餘的分號。

如:if (x>b);

b=x;

多餘的分號會被解釋為空語句,實際產生的效果是:

if(x>b){}

b=x;

也就是說當x>b時,執行空語句,在任何情況下會執行b=x。

如果在c程式中漏寫了乙個分號,就表示當前語句並沒有結束,同樣會差錯。如:

if(n<3)

return

log.date=x[0];

log.time=x[1];

log.code=x[2];

因為return 後漏寫了乙個分號,表示該語句還沒有結束,實際效果相當於:

if(n<3)

return log.date=x[0];

log.time=x[1];

log.code=x[2];

擴充套件資料

1、c 語言中的語句塊中是可以包含語句塊的,語句塊中的語句塊被當。作乙個簡單的語句來處理。

2、若要寫乙個包含幾個表示式語句和空語句的語句塊,就可以用下面的形式:這是乙個語句塊的例子,其中包含四個已經了解的語句,依次為賦值表示式語句、空語句、除法運算表示式語句和按位取反表示式語句。

20樓:天雲一號

c語言規定,語句都需要加分號表示該語句的結束。

對於不加分號的語句,c語言在編譯的時候會報錯。如:

int a=1  // 編譯時會報錯,正確寫法為int a=1;

a = 3+4  // 編譯時會報錯,正確寫法為a = 3+4;

但是在巨集定義的時候,不需要加分號。如:

#define pi 3.14   // 加了分號,反而會報錯

21樓:匿名使用者

是的 除了以#開頭的巨集定義。

在c語言中,for語句的後面加分號和不加分號有何不同?

22樓:種完太陽吃牛大

for迴圈後面加分號,表示這個迴圈是空語句,除了執行for()括號裡的,什麼都不幹。然後就執行下一行,也就是你的prinf,printf和for迴圈沒關係。

如果不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。執行到第二個for時a已經等於3了,你要b=a,那b怎麼可能小於3 。所以後面的for迴圈不滿足條件,不執行,同時for裡面的**也不執行。

使用for語句應該注意:

1) for迴圈中的「表示式1(迴圈變數賦初值)」、「表示式2(迴圈條件)」和「表示式3(迴圈變數增量)」都是選擇項,即可以預設,但分號(;)不能預設。

2) 省略了「表示式1(迴圈變數賦初值)」,表示不對迴圈控制變數賦初值。

3) 省略了「表示式2(迴圈條件)」,則不做其它處理時便成為死迴圈。

例如:for( i=1; ; i++ )  sum=sum+i;

c語言中if語句後面不能加分號,否則當條件為真時執行空語句是什麼意思?

23樓:會飛的小兔子

意思是if語句在執行時,先

判斷括號內語句是否為真,如果為真,則執行後續程專序。當括號內為空時,語句判斷屬為非真,後續所含語句不予執行。

if語句的具體用法:

#include

int main()

printf("x=%d\n" , x);

return 0;

}擴充套件資料if…else if…else語句的具體語法格式如下:

if (判斷條件1)

else if (判斷條件2)

……else if (判斷條件n)

else

24樓:倒霉熊

比如int a,b;

a=2;b=3;

if(a這個

來if括號後面有分號,表示的自是bai 如果a,則不執行任du何語句,而是空語zhi句,分號前dao面沒有任何語句。

而if(a

25樓:匿名使用者

因為加bai分號表示一行語句

du,而你if後面加分號,程式認zhi為dao你if之後沒有語句了,專所以下一行的語句跟if沒關係屬了,直接導致不管if判斷是否成立都會執行下一行語句。

在c語言中編譯器認為一行**的條件是;號不是換行符,所以即使兩行沒加分號,編譯器也認為是一行語句。

26樓:

if( 條件表示式來)

語句段1;

這時候如果源你在 if( 條件表bai達du式zhi)後面加分號就成dao

了:if( 條件表示式);

語句1;

這樣,當條件表示式為真和不為真,都會執行語句1,且為真時,執行的是空語句,即分號前的語句,相當於:

if( 條件表示式) 空語句;

語句1;

27樓:射手

比如:if (i < 0)//這裡沒有bai分du號i=0;

上面那個

語句沒有分號,如zhi

果i<0(即所說的dao條件為真),那

版麼會執行權i=0.如果是這樣

if (i < 0);//這裡有分號

i=0;

那麼相當於

if (i < 0);

;i=0;

第乙個分號之前什麼都沒有,所以就是執行空語句

28樓:匿名使用者

比如if(a>8);

寫的容易看一點就是

if(a>8)

當條件為真時要執行大括號裡面的語句

而此時分號前面沒有語句(即為空語句),所以當條件為真時執行空語句

C語言賦值語句,C語言中賦值語句有什麼規則要求?

選ab中取模右邊不是整數 c中賦值號左側不是一個變數 d中第二個賦值號左側不是一個變數 吉祥二進位制 c語言中通過 運算子來實現賦值,有時候也用它來進行初始化,在c語言中初始化和賦值是完全兩個不同的概念。比如下面的 int a 10 這是初始化a 0 10 這是賦值 初始化是一個順序點,編譯器保證每...

請問,c語言中return語句後,還執行後面的語句不

不執行,直接返回到呼叫子函式的位置,並返回返回值 不執行,已經返回主函式了。在c語言中,乙個函式的結束都是以return為出口的。在乙個函式中無論在 執行到return則結束該函式!對於有返回值的函式return乙個該函式返回值型別的數,對於無返回值void型別的函式,則遇到可能會碰到return ...

C語言中賦值語句有什麼規則要求,c語言中規定 賦值運算子的左邊必須是什麼

由於在賦值符 右邊的表示式也可以又是一個賦值表示式,因此,下述形式 變數 變數 表示式 是成立的,從而形成巢狀的情形。其之後的一般形式為 變數 變數 表示式 例如 a b c d e 5 按照賦值運算子的右接合性,因此實際上等效於 e 5 d e c d b c a b 注意在變數說明中給變數賦初值...

其他用戶還看了: