作者 主題: 運算子  (閱讀 4859 次)

0 會員 與 1 訪客 正在閱讀本文。

xtreming

  • 懷疑的國中生
  • **
  • 文章數: 53
    • 檢視個人資料
運算子
« 於: 2002-05-24 15:26 »
請問
#include <iostream.h>
void main(void)
{
      int a,b,c,d,e;
      a=b=c=d=e=0; //指定a,b,c,d,e的內含值均為0
      a+=2;        cout <<"a值為:" << a <<endl;
      b-=2;         cout <<"b值為:" << b <<endl;
      c*=c=2;     cout <<"c值為:" << c <<endl;
      d%=d=3;   cout <<"d值為:" << d <<endl;
      e/=e=4;     cout <<"e值為:" << e <<endl;
}

的答案為
a=2
b=-2
c=4
d=0
e=1

請問c,d,e值如何算

jade-rabbit

  • 鑽研的研究生
  • *****
  • 文章數: 833
  • 性別: 男
    • 檢視個人資料
Re: 運算子
« 回覆 #1 於: 2002-05-24 17:23 »
我以前是習慣看 Turbo C 的 Help ,
關於運算子的優先順序這部分..

我目前已經沒有寫 C 程式了,
大概猜一下,
+=, -=, *=, /=, %= 這類運算子的優先順序
應該比 = (assignment) 這個運算子的優先權低
所以會得到 c,d,e 的值..
--(中也者天下之大本也,和也者天下之達道也)--

xtreming

  • 懷疑的國中生
  • **
  • 文章數: 53
    • 檢視個人資料
運算子
« 回覆 #2 於: 2002-05-24 18:08 »
thank you

xtreming

  • 懷疑的國中生
  • **
  • 文章數: 53
    • 檢視個人資料
sizeof運算子
« 回覆 #3 於: 2002-05-24 18:41 »
請問

#include <iostream.h>
void main(void)
{
      char arr[]="Welcome to Visual C++";
      cout << "the sizeof of arr[]=" << sizeof arr << endl;
      cout << "the sizeof of char=" << sizeof(char) << endl;
      cout << "the sizeof of int=" << sizeof(int) << endl;
      cout << "the sizeof of float=" << sizeof(float) << endl;
      cout << "the sizeof of double=" << sizeof(double) << endl;
}

執行結果
the sizeof of arr[]=21
the sizeof of char=1
the sizeof of int=4
the sizeof of float=4
the sizeof of double=8

請問點解?

barku

  • 懷疑的國中生
  • **
  • 文章數: 49
    • 檢視個人資料
運算子
« 回覆 #4 於: 2002-06-04 14:32 »
arr 是字串的大小(20個字元) + 1
多出來的那個字元是用來標示字串尾的null (0x00).

其他的是 各種 variables 的大小.
char 是 1 個 byte
int 是 4 個 bytes
float 是 4 個 bytes
double 是 8 個 bytes

這些值有的會因為系統不同而改變,
比如說, 16 位元 及 32 位元的系統,
int 大小就有可能不一樣.

供參考!

夢想^^
at Right, Stay Fit, Die Anyway!!