c語言的賦值表達式語句規則,c語言中正確的賦值表達式

本文目錄一覽:

c語言中賦值的正確語法是什麼?

對於如下說明,語法和語義都正確的賦值是:C、s=a[1];

A、語法上正確(可能引起編譯警告)。若非靜態變量或全局變量,否則s沒有被初始化,是隨機值,*s的值無法確定,即沒有確定的語義;若是靜態變量或全局變量,s被初始化為0,對地址0的解引用操作沒有確定的語義。

B、錯誤。理由同上,對隨機地址的操作不具有確定的語義(s[0]等價於*s)。另外對隨機地址單元的寫操作(賦值)引起的後果不可預料。

C、正確,將a[1]的地址賦值給指針s。

D、語法錯誤,c(int)和a(const int*)的類型不匹配,會引起編譯錯誤。

擴展資料:

將確定的數值賦給變量的語句叫做賦值語句。各程序設計語言有自己的賦值語句,賦值語句也有不同的類型。所賦“值”可以是數字,也可以是字符串和表達式。

例如,給變量a賦值一個數為12,則格式為:a = 12 [注意:變量(即a)只能是一字母,而賦予的值可以是一個式子,當它是式子時,a的值就是這個式子的結果。

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

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填補(即“邏輯移位”)。注意:對無符號數,右移時左邊高位移入0;對於有符號的值,如果原來符號位為0(該數為正),則左邊也是移入0。如果符號位原來為1(即負數),則左邊移入0還是1,要取決於所用的計算機系統。有的系統移入0,有的

系統移入1。移入0的稱為“邏輯移位”,即簡單移位;移入1的稱為“算術移位”。

9.=

按位與後賦值

變量=表達式

按位與是指:參加運算的兩個數據,按二進制位進行“與”運算。如果兩個相應的二進制位都為1,則該位的結果值為1;否則為0。這裡的1可以理解為邏輯中的true,0可以理解為邏輯中的false。按位與其實與邏輯上“與”的運算規則一致。邏輯上的“與”,要求運算數全真,結果才為真。若,A=true,B=true,則A∩B=true

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

這些位運算都是與二進制碼有關的,所以多弄弄也就會了

C語言賦值運算符與賦值表達式

我們都知道基本的賦值運算符是”=”,他的優先級別低於其他的運算符,所以對該運算符往往最後讀取。下面和大家分享一下C語言賦值運算符與賦值表達式,一起來看看吧!

C語言賦值運算符與賦值表達式1

一、賦值運算符與賦值表達式

賦值符號“=“就是賦值運算符,作用是將一個數據賦給一個變量或將一個變量的值賦給另一個變量,由賦值運算符組成的表達式稱為賦值表達式。一般形式為:

變量名=表達式

在程序中可以多次給一個變量賦值,每賦一次值,與它相應的存儲單元中的數據就被更新一次,內存中當前的數據就是最後一次所賦值的那個數據。

例:a=12;此表達式讀作“將10的值賦值給變量a”。

說明:

a、如果賦值號兩邊的運算對象類型不一致,系統會自動進行類型轉換,轉換的規則:將賦值號右邊表達式的值的類型轉換成賦值號左邊變量的類型,

例:inty=3.5;在變量y中最終存儲的是整數3。

b、可以將複製表達式的.值再賦值給變量,形成連續賦值。

例如:x=y=25是一個連續賦值表達式,x=y=25等價於x=(y=25),所以表達式x=y=25最終的值為25。

二、複合的賦值運算符

在賦值運算符之前加上其他運算符可以構成複合賦值運算符。其中與算術運算有關的複合運算符是:+=,—=,x=,/=,%=。

兩個符號之間不可以有空格,複合賦值運算符的優先級與賦值運算符的相同。表達式n+=1等價於n=n+1,作用是取變量n中的值增1再賦給變量n,其他複合的賦值運算符的運算規則依次類推。

如求表達a+=a—=axa的值,其中a的初值為12。

步驟:

(1)先進行“a—=axa“運算,相當於a=a—axa=12—144=—132。

(2)再進行“a+=—132“運算,相當於a=a+(—132)=—132—132=—264。

C語言賦值運算符與賦值表達式2

其一般形式為:

變量=表達式

例如:

x=a+b

w=sin(a)+sin(b)

y=i+++–j

賦值表達式的功能是計算表達式的值再賦予左邊的變量。賦值運算符具有右結合性,因此a=b=c=5可理解為a=(b=(c=5))。

在其它高級語言中,賦值構成了一個語句,稱為賦值語句。 而在C中,把“=”定義為運算符,從而組成賦值表達式。 凡是表達式可以出現的地方均可出現賦值表達式。

例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a,b相加,和賦予x,故x應等於13。

在C語言中也可以組成賦值語句,按照C語言規定,任何表達式在其未尾加上分號就構成為語句。因此如x=8;a=b=c=5;都是賦值語句,在前面各例中我們已大量使用過了。

類型轉換

如果賦值運算符兩邊的數據類型不相同,系統將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。具體規定如下:

實型賦予整型,捨去小數部分。

整型賦予實型,數值不變,但將以浮點形式存放,即增加小數部分(小數部分的值為0)。

字符型賦予整型,由於字符型為一個字節,而整型為二個字節,故將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符量。

【例3-18】

#include

int main(void){

int a,b=322;

float x,y=8.88;

char c1=k,c2;

a=y;

x=b;

a=c1;

c2=b;

printf(“%d,%f,%d,%c”,a,x,a,c2);

return 0;

}

本例表明了上述賦值運算中類型轉換的規則。a為整型,賦予實型量y值8.88後只取整數8。x為實型,賦予整型量b值322, 後增加了小數部分。字符型量c1賦予a變為整型,整型量b賦予c2 後取其低八位成為字符型(b的低八位為01000010,即十進制66,按ASCII碼對應於字符B)。

注意:經大家反饋,筆者發現上面的例子容易造成誤解,現已對代碼進行更改,更改時間 2014-07-04 09:12:45,看評論的讀者請注意評論時間,不要混淆。

更改後的代碼如下:

#include

int main(void){

int a,c,b=322;

float x,y=8.88;

char c1=k,c2;

a=y;

x=b;

c=c1;

c2=b;

printf(“a=%d, x=%f, c=%d, c2=%c “, a, x, c, c2);

return 0;

}

輸出結果:

a=8, x=322.000000, c=107, c2=B

複合的賦值運算符

在賦值符“=”之前加上其它二目運算符可構成複合賦值符。如+=、-=、*=、/=、%=、=、=、=、^=、|=。

構成複合賦值表達式的一般形式為:

變量 雙目運算符=表達式

它等效於

變量=變量 運算符 表達式

例如:

a+=5 等價於 a=a+5

x*=y+7 等價於 x=x*(y+7)

r%=p 等價於 r=r%p

C語言中的賦值語句

你都學傻了!!!!!

賦值就是賦值什麼表示成功不成功啊;

你看看這個吧

c=(x=z);

c==(x=z);

第一個是賦值表達式,賦值表達式是不產生邏輯值的,也就是什麼都沒有

後一個才是關係表達式,是產生邏輯值的

自己想也得根據實際啊,要從實際出發,這是歷史得教訓

C語言中賦值語句的語法是怎樣的

賦值的語法規則就是:

數據類型 變量名 = 表達式

表達式可以理解為一個值或一個計算公式就行,表達式加一個英文符號分號就是語句。

例如:

我們今天要用到的,我買了幾斤蘋果。

就可以這樣寫:

方式一:

Int apple_count = 0; //告訴計算機apple_count是用來存買蘋果的斤數的,默認為0;

方式二:

Int apple_count; //告訴計算機apple_count是用來存買蘋果的斤數的,以後再告訴計算機它等於多少,現在不知道;

擴展資料

1、C語言中,賦值運算的操作是有方向的,即將右側表達式的值(也稱為右值)賦值左側的變量,只能是標識一個特定存儲單元的變量名。

2、由於變量名只能出現在賦值運算符的左邊,因此它也被稱為左值;由於常量只能出現在賦值運算符的右邊,因此它也被稱為右值。左值可以用作右值,但右值不能用作左值。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/269939.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 13:34
下一篇 2024-12-16 13:34

相關推薦

  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python for循環語句打印九九乘法表

    本篇文章將詳細介紹如何使用Python的for循環語句打印九九乘法表。打印九九乘法表是我們初學Python時經常練習的一項基礎操作,也是編寫Python程序的基本能力之一。 1、基…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python中自定義函數必須有return語句

    自定義函數是Python中最常見、最基本也是最重要的語句之一。在Python中,自定義函數必須有明確的返回值,即必須要有return語句。本篇文章將從以下幾個方面對此進行詳細闡述。…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python中升序排列的if語句

    本文將為大家介紹Python中升序排列的if語句。首先,我們來看一下如何實現。 if a > b: a, b = b, a if b > c: b, c = c, b …

    編程 2025-04-29

發表回復

登錄後才能評論