的我有以下程序在C:指針陣列輸出
main() {
int arr[5]={100,200,300};
int *ptr1=arr;
char *ptr2=(char *)arr;
printf("%d\n",sizeof(int));
printf("%d %d",*(ptr1+2),*(ptr2+4));
return 0;
}
其輸出如下:
4
300 -56
請說明最後的輸出。根據我的理解,最後的輸出應該是44而不是-56。
爲什麼你認爲它應該是'44'? – 2014-10-02 11:32:29
這取決於'endianness' – Abhi 2014-10-02 11:34:44
好吧,我已經在編譯器中運行它,其中int是2個字節。在這種情況下,它輸出爲44.那麼它也取決於一個整數需要多少個字節。 – Sarwan 2014-10-02 11:48:27