我一直收到一个警告,关于传递参数使得指针来自整数而没有强制转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我一直收到一个警告,关于传递参数使得指针来自整数而没有强制转换相关的知识,希望对你有一定的参考价值。

C:\ Users \ OWNER \ Downloads \ program1.c | 61 |警告:传递'get_range'的参数1使得整数指针没有强制转换|

巨大的问题真的很值得帮助教授拒绝提供帮助。晚餐休息后,我一直在盯着这个问题约3个小时。我还是想不出来。如果你可以帮我向我解释这一点,那么我可以了解我做错了什么我会非常感激。

/**********************************************************************/
/*                                                                    */
/* Program Name: program1                                             */
/* Author:       Tommy Lokey                                          */
/* Course:       CS 227, Data Structures and Algorithms               */
/* Date Written: September 2, 2018                                    */
/*                                                                    */
/**********************************************************************/

/**********************************************************************/
/*                                                                    */
/* I pledge  all of the lines  in this C program  are my own original */
/* work and that none of the lines in this C program have been copied */
/* from anyone else, unless I was specifically authorized to do so by */
/*                        my CS227 instructor.                        */
/*                                                                    */
/*                                                                    */
/*                      Signed: _____________________________________ */
/*                                           (signature)              */
/*                                                                    */
/*                                                                    */
/**********************************************************************/

/**********************************************************************/
/*                                                                    */
/* This program asks the user for two wholes numbers, it then sums    */
/* the range of the two whole numbers. It then displays the sum.      */
/*                                                                    */
/**********************************************************************/

#include <stdio.h> /* printf, scanf                                   */

/**********************************************************************/
/*                         Symbolic Constants                         */
/**********************************************************************/
#define COURSE_NUMBER  "CS227"    /* PCC assigned course number       */
#define PROGRAM_NUMBER 1          /* Teacher assigned program number  */
#define USER_NAME      "Lokey" /* The Programmer's username        */

/**********************************************************************/
/*                        Function Prototypes                         */
/**********************************************************************/

void print_heading();
/* Print the program heading*/
void get_range(int *p_low_number, int *p_high_number);
int sum_range(int low_number, int high_number);

/**********************************************************************/
/*                         Main Function                              */
/**********************************************************************/
int main()
{
    int low_number,  /* Minimum number entered by user                 */
        high_number; /* Maximum number entered by user                 */

     /* Print the program heading                                       */
     printf("\n\n\n\n\n\n");
     print_heading();
     get_range(low_number, high_number);
     printf("\nThe sum of all you numbers between %d and", low_number);
     printf("%d (inclusively) is %d", high_number,
      sum_range(low_number, high_number));
     printf("\nThanks for your range summing. Have a nice day! ;-)");
     return 0;
    }


   /**********************************************************************/
   /*                   Print the program heading                        */
   /**********************************************************************/
   void print_heading()
   {
   printf("\n========================================================");
   printf("\n                Program Number: %d",     PROGRAM_NUMBER);
   printf("\n                Programmer: %s",         USER_NAME);
   printf("\n                PCC Course Number: %s",  COURSE_NUMBER);
   printf("\n========================================================");
   printf("\nI'll sum whole numbers in a number range (inclusively)");
   printf("\n--------------------------------------------------------");
   return;
   }

    /**********************************************************************/    
    /*                        Get Range Function                          */
    /**********************************************************************/
    void get_range(int *p_low_number, int *p_high_number)
    {
     printf("\nEnter a range of whole numbers now, lower number first:");
     printf("\n  What is your small number: ");
     scanf(" %d", p_low_number);
     printf("\n  Give your large number: ");
     scanf(" %d", p_high_number);
     return;
    }

    /**********************************************************************/
    /*                        Sum Range Function                          */
    /**********************************************************************/
    int sum_range(int low_number, int high_number)
    {
      int range_counter = 0;

      for(low_number; low_number <= high_number; low_number++)
    {
      range_counter = range_counter + low_number;
    }
    return range_counter;
 }
答案

get_range(low_number, high_number); => get_range(&low_number, &high_number);

另一答案

函数get_range()需要两个指针。那是因为它将使用这些指针为另一个函数的变量赋值。

您的教授希望您使用此函数来读取在main()中声明的两个变量。所以你必须获取这些变量的地址并将它们传递给get_range(),而不是它们的值。

以上是关于我一直收到一个警告,关于传递参数使得指针来自整数而没有强制转换的主要内容,如果未能解决你的问题,请参考以下文章

C言语指针变量作为函数参数

警告:传递“Proc_Start”参数 3 的指针目标在符号上不同

传递'memcpy'的参数2从指针目标类型中丢弃'volatile'限定符

共享内存 - 警告:指针和整数之间的比较

传递参数 1 会丢弃来自指针目标类型的限定符

警告:从/到不同大小的整数转换为/从指针转换