c語言中表示式加個分號就是語句了是把

2021-05-23 00:14:19 字數 6004 閱讀 9008

1樓:

if判斷只能接一個語句,存在多個語句時,用塊語句表示{},若在if判斷後 直接加「;」相當於if判斷後加一個空語句,即使條件成立什麼也不會幹!

2樓:

不一定.

a+b是表示式.

a+b; 不是 語句

c = a+b; 是 語句

a++ 是表示式.

a++; 是 語句

3樓:匿名使用者

要理解分號這個東西。。你先要理解什麼是「表示式」。

這個說實話,能理解就是能理解。理解不了,我這裡說幾千個字,也很難說清楚。

建議你找本好的基礎書去看看。

我現在唯一能告訴你的就是:「表示式後面加上分號就是一條語句」

但是這裡說的"語句",有時候並沒有什麼意義。

比如樓上說的 a+b就是一個表示式,a+b;就是一條語句。

但是你能告訴我這條語句幹嘛了嗎??實際上他對你的程式並沒有任何影響。

另外有一點補充:「多個表示式之間用逗號連線,最後加上一個分號,編譯器將之視為一句語句」。這種情況其實很普遍,只是你以前一直沒去想過。

比如最常見的:

int i,j,k; //不知道你能不能理解我的意思又如for(int i=0,j=0; ; i++,j++)呵呵 以前沒仔細想過為什麼吧

4樓:匿名使用者

是的。樓上的,a+b;也是語句,只不過沒有儲存的結果而已。

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

5樓:會飛的小兔子

意思是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

6樓:倒黴熊

比如int a,b;

a=2;b=3;

if(a這個

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

而if(a

7樓:匿名使用者

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

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

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

8樓:

if( 條件表示式來)

語句段1;

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

了:if( 條件表示式);

語句1;

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

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

語句1;

9樓:射手

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

上面那個

語句沒有分號,如zhi

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

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

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

i=0;

那麼相當於

if (i < 0);

;i=0;

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

10樓:匿名使用者

比如if(a>8);

寫的容易看一點就是

if(a>8)

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

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

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

11樓:小夏在深圳

在 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、若要寫一個包含幾個表示式語句和空語句的語句塊,就可以用下面的形式:這是一個語句塊的例子,其中包含四個已經瞭解的語句,依次為賦值表示式語句、空語句、除法運算表示式語句和按位取反表示式語句。

12樓:天雲一號

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

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

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

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

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

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

13樓:匿名使用者

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

c語言中 for語句後面的括號裡有兩個分號是什麼意思啊?

14樓:lee羅亞輝

for語句後加分號就是表示執行for中的語句,不執行其他,也就是不帶迴圈體語句。

for後面跟的是迴圈體。如果不需要有迴圈體,也就是for括號裡面的三句就可以完成所有功能那麼就加個分號,表示迴圈體為空。比如 :

求字串s的長度for(len=0;s[len]; len++);這個, 單獨for裡面的三句就完成了所有功能, 不需要迴圈體, 加分號。

擴充套件資料

for迴圈是程式語言中一種迴圈語句,而迴圈語句由迴圈體及迴圈的判定條件兩部分組成,其表示式為:for(單次表示式;條件表示式;末尾迴圈體)。

for( ; ; )裡面是3個語句,兩個分號。第一個語句是開始前執行,第二個語句是判斷真假,如果真,就執行後面(大括號內)的**。第三個語句是每次執行完畢後執行的東西,通常第三個語句使用"i++"表示i=i+1的意思,用來遞增自變數i。

15樓:匿名使用者

表示這個迴圈沒有初始化,沒有條件判斷,沒有標誌變數的變化

它是一個死迴圈

這樣的迴圈其迴圈體內必須有跳出迴圈的語句,否則就沒法正常退出了

16樓:匿名使用者

你好!for(int i=0;i<100;i++) 分號主要是作分隔的效果。 意思就是說,第一個分號前面的是設定迴圈的起始大小;第一個分號與第二個分號間的是設定迴圈的最大次數;第二個分號後面的表示是遞增迴圈還是遞減迴圈。

在c語言中11種賦值運算子的具體含義,用法?

17樓:木子青耶

1.六個變數=表示式的賦值:

=是賦值運算子,/=是除後賦值,*=是乘後賦值,

%=是取模後賦值,+=是加後賦值,-= 是減後賦值,

2.<<=是左移後賦值,變數<<=表示式 左移就是將左邊的數的二進位制各位全部左移若干位,右邊的數指定移動位數,高位丟棄,低位補0, 移幾位就相當於乘以2的幾次方。

3.>>=是右移後,變數》=表示式,右移運算子是用來將一個數的各二進位制位右移若干位,移動的位數由右運算元指定(右運算元必須是非負值),移到右端的低位被捨棄,對於無符號數,高位補0。

對於有符號數,某些機器將對左邊空出的部分用符號位填補(即「算術移位」),而另一些機器則對左邊空出的部分用0填補(即「邏輯移位」);

對無符號數,右移時左邊高位移入0;對於有符號的值,如果原來符號位為0(該數為正),則左邊也是移入0。

如果符號位原來為1(即負數),則左邊移入0還是1,要取決於所用的計算機系統,系統移入0或系統移入1。

移入0的稱為「邏輯移位」,即簡單移位;移入1的稱為「算術移位」。

4.&= 按位與後,變數&=表示式,按位與是指:參加運算的兩個資料,按二進位制位進行「與」運算。

如果兩個相應的二進位制位都為1,則該位的結果值為1;否則為0。

5.^= 按位異或後賦值,變數^=表示式,參與運算的兩個量按照對應的位進行異或運算,且

0^0→0,  0^1→1,  1^0→1,  1^1→0

一個數與0異或仍保持不變,如a^0=a

一個數與自己異或結果為0,如a^a=0

11.|=是按位或後賦值,變數|=表示式,參與運算的兩個量按照對應位進行或運算,且0|0→0,  0|1→1,  1|0→1,  1|1→1。

18樓:逍遙子家

1、= 賦值運算子:變數=表示式,如:a=3,將a的值賦為3;

2、/= 除後賦值:變數/=表示式,如:a/=3,即a=a/3;

3、*= 乘後賦值:變數*=表示式,如:a*=3,即a=a*3;

4、%= 取模後賦值:變數%=表示式,如:a%=3,即a=a%3;

5、+= 加後賦值:變數+=表示式,如:a+=3,即a=a+3;

6、-= 減後賦值:變數-=表示式,如:a-=3,即a=a-3;

7、<<=     左移後賦值: 變數<<=表示式,左移就是將《左邊的數的二進位制各位全部左移若干位,《右邊的數指定移動位數,高位丟棄,低位補0, 移幾位就相當於乘以2的幾次方;

8、>>= 右移後賦值:變數》=表示式,右移運算子是用來將一個數的各二進位制位右移若干位,移動的位數由右運算元指定(右運算元必須是非負值),移到右端的低位被捨棄,對於無符號數,高位補0;

對於有符號數,某些機器將對左邊空出的部分用符號位填補(即「算術移位」),而另一些機器則對左邊空出的部分用0填補(即「邏輯移位」);

9、&= 按位與後賦值:變數&=表示式,按位與是指參加運算的兩個資料,按二進位制位進行「與」運算。如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0;

10、^= 按位異或後賦值:變數^=表示式,參與運算的兩個量按照對應的位進行異或運算,且0^0→0、0^1→1、 1^0→1、 1^1→0。此外,一個數與0異或仍保持不變,即a^0=a,一個數與自己異或結果為0,即a^a=0;

11、|= 按位或後賦值: 變數|=表示式,參與運算的兩個量按照對應位進行或運算,且

0|0→0、0|1→1、1|0→1、1|1→1。

簡單的最常用的運算子是「=」,它的作用是將一個表示式的值賦給一個左值,一個表示式或者是一個左值,或者是一個右值。所謂左值是指一個能用於賦值運算左邊的表示式,左值必須能夠被修改,不能是常量。一般用變數作左值,指標和引用也可以作左值。

在基本賦值運算子之外,還有適合於所有二元算術和字串運算子的"組和運算子",這樣可以在一個表示式中使用它的值並把表示式的結果賦給它,例如: <?php。

C語言中表示式1表示式2表示式3為什麼不先算表示式2急急急

在c語言中,或 的優先順序低於與 的優先順序,也就是說,無論表 達式1,表示式2,表示式3的值是真或者是假,都是做以下關係運算 表示式1的值 表示式2的值 表示式3的值 和他們的具體值無關。你的說法是不對的,因為此邏輯表示式是先求出 右側的值,然後再與 左側的值作關係或運算,如果想先算前面可以在前兩...

在C語言中,表示式a》bc是什麼意思

的優先順序大於 所以他們的計算過程為 a b 然後 c,a b結果一般為bool值,為0或1,之後你就明白了吧。在c語言中,表示式 a b c是什麼意思?的優先順序大於 所以他們的計算過程為 a b 然後 c,a b結果一般為bool值,為0或1,之後你就明白了吧。的優先順序高於 所以是a b的結果...

C語言中 x yxy中表示式 x y 是什麼意思

等同於if x y 0 x else y c語言中a x y x y 什麼意思 這是一個三目運算子,如果 x 與 y 相等的話,把 x的值賦給a,否則,將 y的值賦給a 在這裡,x是先對x進行自減1再執行語句,y是再執行完語句再執行y自加1,也就是說現在解析出來的表示式為 x 1 y 後面同理!中文...