你好int指針類型鑄造與字符指針拋出意外的輸出? 下面是我的代碼,請幫我理解int指針使用char指針進行類型轉換引發意外輸出?
#include<stdio.h>
int main()
{
int arr[3]={2,3,4};
char*p;
p=(char*)arr;
printf("%d\n",*p); // here 2 its good
p=p+8;
printf("%d\n",*p);//here 4 why not 1?
}
不......不考慮錯字,應該是4. – HuStmpHrrr 2014-09-19 17:12:09
是應該是'int arr [3] = {2,3,4};'?你的例子中沒有'int *'。 – clcto 2014-09-19 17:13:52
位不是字節。字符長度爲1個字節,而不是8個字節。 arr + 8位於陣列之外,因此可以打印任何內容或崩潰。 – 2014-09-19 17:20:03