c語言賦值語句規則?使用者8341957121592020-12-31 19:08:05

由於在賦值符“=”右邊的表示式也可以又是一個賦值表示式, 因此,下述形式 變數=(變數=表示式); 是成立的,從而形成 巢狀的情形。 其展開之後的一般形式為:變數=變數=…=表示式; 例如: 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)是賦值表示式,語句的功能是,若表示式x=y+5大於0則z=x。