當前位置:首頁 » 編程軟體 » 怎麼用編譯器計算逗號表達式

怎麼用編譯器計算逗號表達式

發布時間: 2022-05-07 23:01:58

c語言中的逗號運算符使用

問題一chartemp[]={"Hello"};和chartemp[]="Hello";
這兩個字元數組是一樣的。

問題二
chartemp='a','b'; //編譯錯誤

chartemp;temp='a','b'; //正確,temp得到'a'。'b'未起作用。
chartemp;temp=('a','b'); //正確,temp得到'b',這才是真正的逗號表達式

又如:
inta=1,b=2,c=3;
c=a++,b++; //b++未執行
printf("%d%d%d ",a,b,c); //輸出「231」

問題三chartemp;temp='a','b';
同上。

問題四chartemp[]={"Hello","World"}; //編譯錯誤
temp是一個字元數組,也可以表示存儲一個字元串,但{"Hello","World"}這個數組中的每個元素都是一個字元串,說明它已經是一個二維數組了,不能使用一維數組temp接收,除非這樣:
char*temp[]={"Hello","World"};

❷ c語言逗號運算符

int a=3,b=4,c=5;
c=(a+=a-=a),//這里是分開兩句話的
(b=a,c+2);
a+=a-=a這個是從右往左運行
a-=a a=0
a+=a a=0
c=a c=0所以c=0
b=a b=0
c+2 c不變

不是的
是要括弧括上才取最後一個
比如
c=((a+=a-=a),(b=a,c+2));
這樣才是取後面的

❸ C語言中逗號運算符怎麼用

逗號運算(,)是一個多元運算,逗號運算符可以把兩個以上(包含兩個)的表達式連接成一個表達式,稱為逗號表達式。其一般形式為:
子表達式1, 子表達式2, ..., 子表達式n

它的整個的值都是最後一個表達式的值,這里所說的值是從左向右運算的。逗號運算符的優先順序是所有運算符中級別最低的。

例如:

inta=(表達式1,表達式2);//則a的結果是表達式2的結果

❹ C語言菜鳥提問,關於逗號表達式。請看我下面的例子

這么來看y=(x=a+b)是逗號的前一個語句,那麼y就等於6;
而(b+c)是逗號的後面一個表達式
你這樣看看:
加一個變數:
int
z;
z=(y=(x=a+b),(b+c));
這樣z就等於(b+c)了,
那麼總結出來:
要得到一個逗號表達式的值是要將這個逗號表達式用括弧括起來的!!

❺ C語言中的逗號表達式 是怎麼計算的 如果兩值或兩式子之間有個逗號 那結果是什麼

逗號在C語言中,有兩種形式:
1.通常的逗號。例如:printf("%d%d",a,b);
2.稱為逗號表達式,即可以構成逗號表達式.例如:
main()
{
int
a,b,c;
a=1;
b=2;
c=(a+b,b-a);
printf("%d",c);
/*輸出的正確答案應該是b-a的值為1,即答案應該是逗號表示式中最後一個表達式的值,如果碰到括弧裡面還有括弧,一定要仔細看清楚,那個是最後一個表達式,這種題型很容易出現用來忽悠人,加油!*/
}

❻ 逗號表達式怎麼用

表達式1,表達式2,表達式3,...... ,表達式n

逗號表達式的要領:

1.逗號表達式的運算過程為:從左往右逐個計算表達式。

2.逗號表達式作為一個整體,它的值為最後一個表達式(也即表達式n)的值。

3.逗號運算符的優先順序別在所有運算符中最低。

在代碼中,%d作為格式聲明部分已經控制了輸出值只能為十進制數,因此其輸出值是實際值向下取整的結果。由取值x=10與y=3,z的值應當為10/3,也就是3.33333333······。但由於添加了流控制,輸出結果只能為3。

除了整數限制以外,代碼中的 是普通字元中的換行符,表示輸出後控制移到下一行的開頭。

(6)怎麼用編譯器計算逗號表達式擴展閱讀

c語言的優點有以下:

1.簡潔緊湊、靈活方便。

C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。

2.運算符豐富。

C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

3.數據類型豐富。

C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據結構的運算。並引入了指針概念,使程序效率更高。

4.表達方式靈活實用。

C語言提供多種運算符和表達式值的方法,對問題的表達可通過多種途徑獲得,其程序設計更主動、靈活。它語法限制不太嚴格,程序設計自由度大,如對整型量與字元型數據及邏輯型數據可以通用等。

5.允許直接訪問物理地址,對硬體進行操作。

由於C語言允許直接訪問物理地址,可以直接對硬體進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像匯編語言一樣對位(bit)、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。

6.生成目標代碼質量高,程序執行效率高。

C語言描述問題比匯編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編程序生成的目標代碼效率低10%~20%。

7.可移植性好。

C語言在不同機器上的C編譯程序,86%的代碼是公共的,所以C語言的編譯程序便於移植。在一個環境上用C語言編寫的程序,不改動或稍加改動,就可移植到另一個完全不同的環境中運行。

8.表達力強。

C語言有豐富的數據結構和運算符。包含了各種數據結構,如整型、數組類型、指針類型和聯合類型等,用來實現各種數據結構的運算。C語言的運算符有34種,范圍很寬,靈活使用各種運算符可以實現難度極大的運算。

❼ 【C語言】for語句裡面的逗號表達式,怎麼算啊

在第一層for()循環裡面,每次進入for()循環S都被初始化為1,所以 S的值為最後一次第二層循環後的值,最後一次進入第二層循環是k=4
第一次k=2,k++兩次k=4,此時進入第二層循環
s=1+4+5;
最終s=10
----------------------------------------------------------
逗號表達式就是依次計算值就是了,最終值為逗號表達式的最後後面一個值
如:

逗號表達式是有值的,這一點是語句所不能代替的。逗號表達式的值為第n個子表達 式的值,即表達式n的值。例如:
int a,b,c,d;
d=(a=1,b=a+2,c=b+3);
cout<<d<<endl;
輸出結果為:
6

❽ C++ 裡面逗號表達式的問題

可能你用的編譯器太老了,我用vs2012,最後結果是11

❾ [C語言][表達式計算][逗號表達式]表達式計算順序的疑問

以匯編視圖查看實際的操作:

1、ptr [ebp-4]置為0,ebp-4得到的是變數a的內存地址,也就是a賦值為0了。

2、寄存器EAX置為ptr [ebp-4],也就是a的值放入寄存器。

3、add eax,1,就是EAX寄存的值+1。

也就是說intb = a + (a=0,1);這條語句被理解成a=0;int b=a+1;。也不知道不同編譯環境下是否還有所不同?我一開始跟樓主想得也一樣,b的值應該是2。具體的原因我也很想知道,期待高手詳解。不過b = a + (a=0,1);這種代碼只能用來研究,不提倡實際編寫,編程不是做密碼,容易歧義的東西會耽誤事的。

熱點內容
動圖在線壓縮 發布:2025-05-14 03:35:24 瀏覽:131
w7共享無法訪問 發布:2025-05-14 03:35:24 瀏覽:481
為什麼微信會出現賬號密碼錯誤 發布:2025-05-14 03:03:30 瀏覽:692
幻影腳本官網 發布:2025-05-14 03:01:13 瀏覽:826
servlet的webxml怎麼配置 發布:2025-05-14 02:51:46 瀏覽:772
怎麼取消手勢密碼 發布:2025-05-14 02:51:11 瀏覽:639
openvpn搭建vpn伺服器搭建 發布:2025-05-14 02:47:52 瀏覽:998
密碼忘了從哪裡找 發布:2025-05-14 02:39:09 瀏覽:548
我的世界什麼伺服器有前途 發布:2025-05-14 02:30:31 瀏覽:528
java程序反編譯 發布:2025-05-14 02:18:46 瀏覽:458