尝试将变量的地址分配给声明为指向其他类型的变量的指针时,为什么会收到警告?

用户名

看一下下面的程序。我不明白的是,为什么我必须将变量的地址强制转换xchar*当您想一想它实际上绝对是无用的时候。我真正需要的只是变量的地址,声明语句已经提供了所有必要的类型信息char* ptr

#include <stdio.h>


int main(void) {
    int   x   = 0x01020309;
    char* ptr = &x; /* The GCC compiler is going to complain here. It will
                       say the following: "warning: initialization from
                       incompatible pointer type [enabled by default]". I
                       need to use the cast operator (char*) to make the
                       compiler happy. But why? */

    /* char* ptr = (char*) &x; */ /* this will make the compiler happy */

    printf("%d\n", *ptr); /* Will print 9 on a little-endian machine */


    return 0;
}
克拉斯·林贝克(KlasLindbäck)

您是正确的,它没有任何实际差异。出现警告是为了通知您该作业可能有些麻烦。

C具有相当强大的类型检查功能,因此,大多数编译器会在类型不兼容时发出警告。

您可以通过添加显式强制类型来摆脱警告(char*),这是在说:

我知道自己在做什么,char*即使类型不匹配,我也想将此值分配给指针。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

将类型类的变量分配给扩展声明的变量类型的其他类

来自分类Java

为什么Collections.swap将目标列表分配给原始类型的变量?

来自分类Java

为什么将新的ArrayList分配给List变量?

来自分类Android

Android:为什么在尝试分配给变量时不运行Transformation.map?

来自分类Java

分配给null的变量与未分配的其他变量有什么区别

来自分类Java

为什么在float数据类型使用较少的内存时可以将长文字分配给float变量?

来自分类Dev

警告:在将功能地址分配给功能指针时,从不兼容的指针类型进行分配[默认启用]

来自分类Dev

为什么无法将字符串分配给强类型的布尔变量?

来自分类Dev

为什么将变量声明为通配符类型

来自分类Dev

为什么我可以将函数引用分配给匿名函数指针变量?

来自分类Dev

在TypeScript中,为什么可以将“ null”分配给类型“ undefined”的变量,反之亦然

来自分类Dev

禁止将Type类型的变量分配给Typescript中其他类型的变量

来自分类Dev

将功能分配给其他类变量

来自分类Dev

为什么我的指针变量持有其他地址,但仍成功指向变量?

来自分类Dev

C#将指向引用类型的变量分配给另一个变量,后者中存储了什么?

来自分类Dev

将指针分配给多维数组时,为什么会出现“不兼容的指针类型”

来自分类Dev

为什么允许将常规指针分配给指向const的指针而不是相反?

来自分类Dev

将变量分配给指针与关联和将变量分配给指针

来自分类Dev

分配给指针时,什么类型的转换地址?

来自分类Dev

将变量分配给指针

来自分类Dev

尝试将一个变量分配给其他变量作为链接时,php中的数组到字符串转换错误

来自分类Dev

无法将结构的地址分配给类型为指向该结构的指针的typedef的变量

来自分类Dev

TS:为什么可以将无效类型分配给泛型类型变量?

来自分类Dev

当将值分配给结构初始化程序中的字符串数组成员时,为什么会收到“ int-conversion”警告?

来自分类Dev

尝试将IntVar()分配给变量时获取AttributeError

来自分类Dev

Firebase:为什么将 Firestore .onSnapshot 分配给变量?

来自分类Dev

在 C 中,如果将双指针分配给值,为什么指针变量为 0?

来自分类Dev

为什么他们的顺序是将新变量分配给现有变量

来自分类Dev

为什么我可以将具有未知属性的文字分配给 {} 类型的变量

Related 相关文章

  1. 1

    将类型类的变量分配给扩展声明的变量类型的其他类

  2. 2

    为什么Collections.swap将目标列表分配给原始类型的变量?

  3. 3

    为什么将新的ArrayList分配给List变量?

  4. 4

    Android:为什么在尝试分配给变量时不运行Transformation.map?

  5. 5

    分配给null的变量与未分配的其他变量有什么区别

  6. 6

    为什么在float数据类型使用较少的内存时可以将长文字分配给float变量?

  7. 7

    警告:在将功能地址分配给功能指针时,从不兼容的指针类型进行分配[默认启用]

  8. 8

    为什么无法将字符串分配给强类型的布尔变量?

  9. 9

    为什么将变量声明为通配符类型

  10. 10

    为什么我可以将函数引用分配给匿名函数指针变量?

  11. 11

    在TypeScript中,为什么可以将“ null”分配给类型“ undefined”的变量,反之亦然

  12. 12

    禁止将Type类型的变量分配给Typescript中其他类型的变量

  13. 13

    将功能分配给其他类变量

  14. 14

    为什么我的指针变量持有其他地址,但仍成功指向变量?

  15. 15

    C#将指向引用类型的变量分配给另一个变量,后者中存储了什么?

  16. 16

    将指针分配给多维数组时,为什么会出现“不兼容的指针类型”

  17. 17

    为什么允许将常规指针分配给指向const的指针而不是相反?

  18. 18

    将变量分配给指针与关联和将变量分配给指针

  19. 19

    分配给指针时,什么类型的转换地址?

  20. 20

    将变量分配给指针

  21. 21

    尝试将一个变量分配给其他变量作为链接时,php中的数组到字符串转换错误

  22. 22

    无法将结构的地址分配给类型为指向该结构的指针的typedef的变量

  23. 23

    TS:为什么可以将无效类型分配给泛型类型变量?

  24. 24

    当将值分配给结构初始化程序中的字符串数组成员时,为什么会收到“ int-conversion”警告?

  25. 25

    尝试将IntVar()分配给变量时获取AttributeError

  26. 26

    Firebase:为什么将 Firestore .onSnapshot 分配给变量?

  27. 27

    在 C 中,如果将双指针分配给值,为什么指针变量为 0?

  28. 28

    为什么他们的顺序是将新变量分配给现有变量

  29. 29

    为什么我可以将具有未知属性的文字分配给 {} 类型的变量

热门标签

归档