![](/img/trans.png)
[英]Why does a const int implicitly cast to a byte, but a variable int does not?
[英]Why assigning an int literal to a byte variable is legal?
將int
常量分配給byte
變量是合法的:
byte b = 123; // legal
但是,將int
變量分配給byte
變量是非法的:
int i = 123;
byte b = i; // illegal
因為當您分配文字(常量值)時,編譯器可以證明該值適合字節。 當您分配變量時,不能這樣做。
如果指定常量編譯器,則很樂意進行編譯,因為它可以確認該值在(0-255)的范圍內,該范圍是byte
的有效范圍。
例如,以下代碼可以毫無問題地進行編譯。
const int i = 123;
byte b = i;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.