[英]C - Using a char pointer to print int value, not getting expected result
我試圖了解指針的工作方式。 我創建了一個int
值,並用char
指針指向了它。
當打印char
指針指向的地址的內容時,我沒有得到預期的結果。
就像該char
指針指向256一樣 ,我期望該地址的內容返回0,因為(256)10 =(0000000100000000)2 。 因為char
指針指向一個字節,所以它將返回前8位(為零)。
但它返回-1 。
這是我的代碼
#include <stdio.h>
int main()
{
int y = 256;
char *p = (char *)&y;
// returns Value -1
printf("Value %d \n", *p);
return 0;
}
但是為什么255仍然給我-1? 即使我打印
y
當y
為255時獲得Value -1 255
是有意義的。 p
指向一個看起來像二進制的11111111
的字節, *p
是一個有符號的char, %d
打印一個有符號的值,因此這就是為什么它輸出-1的原因。 – dbush
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.