假設有char a[2];
如要把a轉換為int值。應是如下寫法int b=*(int *)a;
即,先把指針a 轉換為一個int指針,然后再此基礎上取值。
但是另一種寫法 int b=(int)(*a);是不對的,*a 取a的內存單元內容,因為現在a是char指針,所以只會取a[1]中內容,最大為255. 這里要說明的是,在把char或byte數組轉換為其他類型的值時,要先把數組指針的類型變為其他數據類型的指針。然后再取值。
如要把a轉換為int值。應是如下寫法int b=*(int *)a;
即,先把指針a 轉換為一個int指針,然后再此基礎上取值。
但是另一種寫法 int b=(int)(*a);是不對的,*a 取a的內存單元內容,因為現在a是char指針,所以只會取a[1]中內容,最大為255. 這里要說明的是,在把char或byte數組轉換為其他類型的值時,要先把數組指針的類型變為其他數據類型的指針。然后再取值。