繁体   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