警告:赋值使指针从整数而不进行强制转换 [-Wint-conversion]

亚历山大·沃里奥蒂斯

我想提示用户输入 3 个数字。然后,通过调用一个名为“swap”的函数,将第一个数字与第二个数字交换,第二个数字与第三个数字交换,第三个数字与第一个数字交换。

inC中的函数不能返回多个值,因此我决定创建一个带有指针的结构,稍后将在我的函数中使用。然后,我创建了三指针来存储每个数字的地址,这样我就可以在我的函数中取消对这些数字的引用(如下所示)

Number.pa = *ppb;
Number.pb = *ppc;
Number.pc = *ppa;

这是我的代码:

#include <stdio.h>

void swap(); // a = b, b = c, c = a

struct Numbers {

    int *pa, *pb, *pc;

} ;

int main(void) {

    struct Numbers Number; // Structure to hold the values of the three variables.

    int a, b, c;
    int *ppa, *ppb, *ppc;                                              
    printf("\n Please enter three integer numbers: ");  
    scanf("%d%d%d", &a, &b, &c);
    ppa = &a; ppb = &b; ppc = &c;                                         
    swap(a, b, c, Number, *ppa, *ppb, *ppc);
    printf("\n %d \t %d \t %d \n", Number.pa, Number.pb, Number.pc);
}

void swap(int a, int b, int c, struct Numbers Number, int *ppa, int *ppb, int *ppc) { 

    Number.pa = *ppb;
    Number.pb = *ppc;
    Number.pc = *ppa;  

   } ;
克雷格

交换函数的大多数参数要么毫无意义,要么纯粹是猜测(或两者兼而有之)。分配有效地希望你从“旋转”值a通过c所以这样做,而且而已

#include <stdio.h>

void swap(int *pa, int *pb, int *pc);

int main() 
{
    int a, b, c;

    printf("\n Please enter three integer numbers: ");  
    if (scanf("%d %d %d", &a, &b, &c) == 3)
    {
        swap(&a, &b, &c);
        printf("%d %d %d \n", a, b, c);
    }
    return 0;
}

void swap(int *pa, int *pb, int *pc)
{ 
    int tmp = *pa;
    *pa = *pb;
    *pb = *pc;
    *pc = tmp;
}

停止阅读比那里更多的作业。如果这听起来很简单,那可能就是这样。警告是由于将取消引用的指针的值int(soint值)传递给需要int指针的函数不是int价值观。如您所见,您不需要执行任何操作(并且一开始就不需要)。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

摆脱警告:指针中的整数,不带强制转换的[-Wint-conversion],带有工作代码

来自分类Dev

return从指针转换为整数,而没有强制转换[-Wint-conversion]返回候选

来自分类Dev

避免在_generic宏中“警告:从大小不同的整数[-Wint-to-pointer-cast]强制转换为指针”

来自分类Dev

如何更正警告:从不同大小的整数强制转换为指针[-Wint-to-pointer-cast]

来自分类Dev

C语言中的强制转换警告:赋值使指针不进行强制转换而生成整数

来自分类Dev

malloc:从不同大小的整数强制转换为指针[-Wint-to-pointer-cast]

来自分类Dev

赋值使指针从整数变为整数,而不进行强制转换

来自分类Dev

C - 赋值从指针生成整数而不进行强制转换

来自分类Dev

警告:赋值从整数开始取整,而不进行强制转换

来自分类Dev

c错误:赋值使指针从整数变为无强制转换[-Werror = int-conversion]

来自分类Dev

为什么编译器会发出“警告:赋值从指针进行整数转换而不进行强制转换”?

来自分类Dev

为什么编译器会发出“警告:赋值从指针进行整数转换而不进行强制转换”?

来自分类Dev

警告从整数生成指针而不进行强制转换

来自分类Dev

如何在C中不进行赋值而强制转换指针?

来自分类Dev

使用char malloc的“警告:赋值从指针进行整数转换而无需强制转换”

来自分类Dev

警告:赋值会从指针进行整数转换而无需强制转换。怎么了?

来自分类Dev

警告:传递“memcpy”的参数 1 使指针从整数而不进行强制转换

来自分类Dev

无法禁用 gcc 警告 - 从整数创建指针而不进行强制转换

来自分类Dev

赋值使指针从整数开始而没有强制转换警告

来自分类Dev

赋值使指针产生整数,而没有强制转换警告

来自分类Dev

传递参数使指针来自整数而不进行强制转换

来自分类Dev

编译器为什么会发出问题:警告:赋值从指针进行整数转换而无需强制转换

来自分类Dev

警告:赋值使指针从整数开始而没有在malloc进行强制转换(默认情况下启用)

来自分类Dev

指针算术:警告:赋值使指针从整数开始而没有强制转换[默认启用]

来自分类Dev

有没有办法在返回数组中不使用指针?(警告:传递 'arrangef' 的参数 1 使指针从整数而不进行强制转换。)

来自分类Dev

警告:赋值使指针从整数变为整数,而没有强制转换ARGV

来自分类Dev

警告:赋值使指针从整数变为整数而不强制转换[默认启用

来自分类Dev

C-警告:赋值使指针从整数开始而没有强制转换

来自分类Dev

警告:赋值使指针从整数开始而没有强制转换yylval = atoi(yytext);

Related 相关文章

  1. 1

    摆脱警告:指针中的整数,不带强制转换的[-Wint-conversion],带有工作代码

  2. 2

    return从指针转换为整数,而没有强制转换[-Wint-conversion]返回候选

  3. 3

    避免在_generic宏中“警告:从大小不同的整数[-Wint-to-pointer-cast]强制转换为指针”

  4. 4

    如何更正警告:从不同大小的整数强制转换为指针[-Wint-to-pointer-cast]

  5. 5

    C语言中的强制转换警告:赋值使指针不进行强制转换而生成整数

  6. 6

    malloc:从不同大小的整数强制转换为指针[-Wint-to-pointer-cast]

  7. 7

    赋值使指针从整数变为整数,而不进行强制转换

  8. 8

    C - 赋值从指针生成整数而不进行强制转换

  9. 9

    警告:赋值从整数开始取整,而不进行强制转换

  10. 10

    c错误:赋值使指针从整数变为无强制转换[-Werror = int-conversion]

  11. 11

    为什么编译器会发出“警告:赋值从指针进行整数转换而不进行强制转换”?

  12. 12

    为什么编译器会发出“警告:赋值从指针进行整数转换而不进行强制转换”?

  13. 13

    警告从整数生成指针而不进行强制转换

  14. 14

    如何在C中不进行赋值而强制转换指针?

  15. 15

    使用char malloc的“警告:赋值从指针进行整数转换而无需强制转换”

  16. 16

    警告:赋值会从指针进行整数转换而无需强制转换。怎么了?

  17. 17

    警告:传递“memcpy”的参数 1 使指针从整数而不进行强制转换

  18. 18

    无法禁用 gcc 警告 - 从整数创建指针而不进行强制转换

  19. 19

    赋值使指针从整数开始而没有强制转换警告

  20. 20

    赋值使指针产生整数,而没有强制转换警告

  21. 21

    传递参数使指针来自整数而不进行强制转换

  22. 22

    编译器为什么会发出问题:警告:赋值从指针进行整数转换而无需强制转换

  23. 23

    警告:赋值使指针从整数开始而没有在malloc进行强制转换(默认情况下启用)

  24. 24

    指针算术:警告:赋值使指针从整数开始而没有强制转换[默认启用]

  25. 25

    有没有办法在返回数组中不使用指针?(警告:传递 'arrangef' 的参数 1 使指针从整数而不进行强制转换。)

  26. 26

    警告:赋值使指针从整数变为整数,而没有强制转换ARGV

  27. 27

    警告:赋值使指针从整数变为整数而不强制转换[默认启用

  28. 28

    C-警告:赋值使指针从整数开始而没有强制转换

  29. 29

    警告:赋值使指针从整数开始而没有强制转换yylval = atoi(yytext);

热门标签

归档