1. c語言中,while()語句括弧內可以是賦值語句嗎
while()語句括弧中是一個邏輯表達式,用以判斷while循環是否需要繼續執行。可以是賦值語句。
while循環的一般格式為:
while(expr)
{
;//body
}
其中用來判斷循環條件的expr可以是任意表達式。當其是賦值語句的時候,含義為,先執行賦值語句,然後對左值進行判斷。如果左值為0則expr為假,while退出;否則expr為真,while繼續循環。
不過直接用賦值語句做expr時,編譯器可能為認為賦值操作符=是等於判斷符==的誤寫,這時編譯器可能會報一個警告(warning),編譯器是否報警,及報警告還是錯誤(error)取決於編譯器設置。為避免這種情況,可以用while((var
=
expr))的形式,告知編譯器就是要先賦值再判斷,編譯器就不會理會了。
下面是舉一個例子用來輔助說明。
函數功能,將參數字元串中的所有值按照ascii碼進行累加,獲取校驗和,溢出後只取低位元組值。
char sum(char* p)
{
char c;
char sum = 0;
while((c = *p ++))//讀取字元串中的字元,直到字元串結尾。 這里用的就是一個賦值的方式。先把*p賦值給c,然後執行指針移位,再判斷c的值,如果c值為0,代表字元串結束,退出循環。
{
sum+=c;//累加值,不考慮溢出。
}
return c;//返回校驗和
}
2. c語言 圓括弧用法 賦值 a=(1,2);printf(「%d」,a);什麼意思
圓括弧有較高的優先順序,一般先執行圓括弧內的代碼
(1,2)是一個逗號表達式,逗號表達式的值=最後一個值,前面的操作按順序執行
a=(1,2)顯然a=2
3. C語言把括弧,賦值,逗號等都作為什麼處理
運算符處理,逗號也是運算符,當然還有sizeof()
4. 在C語言中賦值運算符有什麼作用
賦值符號"="
就是賦值運算符,作用是將一個數據賦給一個變數或將一個變數的值賦給另一個變數,由賦值運算符組成的表達式稱為賦值表達式。一般形式為:
變數名=表達式
在程序中可以多次給一個變數賦值,每賦一次值,與它相應的存儲單元中的數據就被更新一次,內存中當前的數據就是最後一次所賦值的那個數據。
例:a=12;此表達式讀作
將10的值賦值給變數a。
說明:a、如果賦值號兩邊的運算對象類型不一致,系統會自動進行類型轉換,轉換的規則:將賦值號右邊表達式的值的類型轉換成賦值號左邊變數的類型,
例:int y=3.5;在變數y中最終存儲的是整數3。
b、可以將復製表達式的值再賦值給變數,形成連續賦值。
例如:x=y=25
是一個連續賦值表達式,
x=y=25等價於x=(y=25),所以表達式
x=y=25
最終的值為25。
5. 在C語言中11種賦值運算符的具體含義,用法
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。
(5)c語言中括弧賦值擴展閱讀:
1.賦值表達式的功能是計算表達式的值再賦予左邊的變數。
賦值運算符具有右結合性,因此a=b=c=5可理解為a=(b=(c=5))。
2.在其它高級語言中賦值構成了一個語句,稱為賦值語句;
而在C語言中,
把「=」定義為運算符,從而組成賦值表達式。
3.凡是表達式可以出現的地方均可出現賦值表達式。
例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a,b相加,和賦予x,故x應等於13。
4.在C語言中也可以組成賦值語句。
按照C語言規定,任何錶達式在其未尾加上分號就構成為語句。
6. C語言中賦值語句有什麼規則要求
賦值語句是由賦值表達式再加上分號構成的表達式語句。 其一般形式為: 變數=表達式。
在賦值語句的使用中需要注意以下幾點:
由於在賦值符「=」右邊的表達式也可以又是一個賦值表達式, 因此,下述形式 變數=(變數=表達式); 是成立的,從而形成嵌套的情形。 其展開之後的一般形式為:變數=變數=…=表達式;
例如: a=b=c=d=e=5; 按照賦值運算符的右接合性,因此實際上等效於: e=5; d=e; c=d; b=c; a=b;注意在變數說明中給變數賦初值和賦值語句的區別。 給變數賦初值是變數說明的一部分,賦初值後的變數與其後的其它同類變數之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。 例如: int a=5,b,c;
在變數說明中,不允許連續給多個變數賦初值。 如下述說明是錯誤的: int a=b=c=5 必須寫為 int a=5,b=5,c=5; 而賦值語句允許連續賦值。
注意賦值表達式和賦值語句的區別。 賦值表達式是一種表達式,它可以出現在任何允許表達式出現的地方,而賦值語句則不能。
下述語句是合法的: if((x=y+5)>0) z=x; 語句的功能是,若表達式x=y+5大於0則z=x。 下述語句是非法的: if((x=y+5;)>0) z=x; 因為x=y+5;是語句,不能出現在表達式中。
7. c語言中的括弧表達式
括弧表達式計算順序是從左到右,然後整個表達式返回的是最右邊表達式的值,如第一個表達式,先算最內層的括弧表達式的最左邊的值,再把其最右邊的值返回並賦值給b,所以b在此次運算之後變為3,之後b+2=5(但5隻是一個臨時值,b值還是3),之後15+b=18,並且這個值由於是最右的表達式會作為整個大括弧表達式的返回值,即b再一次被賦值為18,然後現計算b+=18得到36;
如此第二個就是-30吧,對了,賦值表達式是從右到左賦值的
8. c語言定義字元數組a(20)(中括弧),然後用scanf給a賦值「abccd」,這時/0結束符在哪
當然是a(5),這是字元串的結束符,不是字元數組的
9. C語言中賦值語句的語法是怎樣的
賦值的語法規則就是:
數據類型 變數名 = 表達式
表達式可以理解為一個值或一個計算公式就行,表達式加一個英文符號分號就是語句。
例如:
我們今天要用到的,我買了幾斤蘋果。
就可以這樣寫:
方式一:
Int apple_count = 0; //告訴計算機apple_count是用來存買蘋果的斤數的,默認為0;
方式二:
Int apple_count; //告訴計算機apple_count是用來存買蘋果的斤數的,以後再告訴計算機它等於多少,現在不知道;
(9)c語言中括弧賦值擴展閱讀
1、C語言中,賦值運算的操作是有方向的,即將右側表達式的值(也稱為右值)賦值左側的變數,只能是標識一個特定存儲單元的變數名。
2、由於變數名只能出現在賦值運算符的左邊,因此它也被稱為左值;由於常量只能出現在賦值運算符的右邊,因此它也被稱為右值。左值可以用作右值,但右值不能用作左值。
10. C語言中括弧運算符的問題
哈哈,你這是一個逗號表達式。
它將以逗號為界,從左到右依次計算每個表達式的值,最後返回最右邊的表達式的值。
阿明白??