多學網 > 科技 > c語言中表示式加個分號就是語句了是把
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的值是真或者是假,都是做以下關係運算 表示式1的值 表示式2的值 表示式3的值 和他們的具體值無關。你的說法是不對的,因為此邏輯表示式是先求出 右側的值,然後再與 左側的值作關係或運算,如果想先算前面可以在前兩...
的優先順序大於 所以他們的計算過程為 a b 然後 c,a b結果一般為bool值,為0或1,之後你就明白了吧。在c語言中,表示式 a b c是什麼意思?的優先順序大於 所以他們的計算過程為 a b 然後 c,a b結果一般為bool值,為0或1,之後你就明白了吧。的優先順序高於 所以是a b的結果...
等同於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 後面同理!中文...