在下面的代碼,浮動值澆鑄到char
#include<stdio.h>
int main(){
char array[] = {'1', 2, 5.2};
char* my_pointer = array[2];
printf("%c", *my_pointer);
}
5.2
被存儲在IEEE 754表示在存儲器中,char
緯紗8個比特(第一個)從該浮點表示,由於小端格式。
C是一種鬆散類型的語言。我被允許投下float
到char
。
爲什麼該程序是核心轉儲?
這是個問題? – meJustAndrew
做一些未定義的行爲,期待未定義的行爲發生。 –
@DavidHoelzer我知道,如何在內存中存儲'5.2',我從中選擇了8位。那是不確定的? C是鬆散類型的語言。我被允許將'float'強制轉換爲'char'。爲什麼應該可執行的核心? – overexchange