簡體   English   中英

C-使用char指針打印int值,未獲得預期結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM