簡體   English   中英

在c中使用字符指針打印整數值

[英]Print Integer value using character pointer in c

我對類型轉換有一點疑問。 我在這里粘貼我的示例代碼。

#include <stdio.h>

int main()
{
    int i=1100;
    char *ptr=(char*)&i;
    
    printf("Value of int =%d\n",(int*)(*ptr));
    return 0;
}

我在兩點進行了類型轉換。 第一個是,

char *ptr=(char*)&i;

第二個是,

printf("Value of int =%d\n",(int*)(*ptr));

以避免編譯警告。

當我打印它時,我得到的輸出為

Value of int =76

我知道我們需要將值的地址分配給正確類型的指針以便正確地尊重它。

我的疑問是,

  1. 是否可以使用字符指針打印值 1100 ? 如果是,那么如何?

我期待你們這些人的明確答復。 請幫忙解決這個問題。

在您的代碼中,您它已經取消引用指針之后進行轉換,因此它只會轉換為char 首先投射指針,如下所示:

*((int*)ptr)

但是,這仍然是一個不推薦的策略。 如果您想要一個真正通用的指針類型,請使用void* ,它在未強制轉換時不允許取消引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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