C 使用指针传递值

C 使用指针传递值,c,pointers,C,Pointers,我正在学习C和指针。我遵循下面的代码,有几个问题 我的MS Visual Studio抱怨:使用了未初始化的局部变量“day_ret”。然后,我使用Geany(另一个IDE)进行了遵从,它可以正常工作。这个代码有什么问题吗 我觉得编写代码的作者应该给月份和日期加上一些值。否则,它只会打印出内存地址,对吗?我想知道我是否应该把初始值放在mian后面 参考: www.publications.gbdirect.co.uk/c_book/chapter5/pointers.html #include

我正在学习C和指针。我遵循下面的代码,有几个问题

  • 我的MS Visual Studio抱怨:使用了未初始化的局部变量“day_ret”。然后,我使用Geany(另一个IDE)进行了遵从,它可以正常工作。这个代码有什么问题吗

  • 我觉得编写代码的作者应该给月份和日期加上一些值。否则,它只会打印出内存地址,对吗?我想知道我是否应该把初始值放在mian后面

  • 参考: www.publications.gbdirect.co.uk/c_book/chapter5/pointers.html

    #include <stdio.h>
    #include <stdlib.h>
    void date(int *, int *);     /* declare the function */
    
    int main(){
          int month, day;
          date (&day, &month);
          printf("day is %d, month is %d\n", day, month);
          exit(EXIT_SUCCESS);
    }
    
    void date(int *day_p, int *month_p){
          int day_ret, month_ret;
          /*
           * At this point, calculate the day and month
           * values in day_ret and month_ret respectively.
           */
          *day_p = day_ret;
          *month_p = month_ret;
    }
    
    #包括
    #包括
    无效日期(整数*,整数*);/*声明函数*/
    int main(){
    int月,日;
    日期(日和月);
    printf(“天是%d,月是%d\n”,天,月);
    退出(退出成功);
    }
    作废日期(整数*日,整数*月){
    国际日、月;
    /*
    *此时,计算日期和月份
    *分别以日和月为单位的值。
    */
    *day_p=day_ret;
    *月p=月ret;
    }
    
  • 是-注释中缺少代码:

    /*
     * At this point, calculate the day and month
     * values in day_ret and month_ret respectively.
     */
    
    该代码将设置
    day\u ret
    month\u ret
    。如果没有丢失的代码,它实际上是不完整的,您可以获得
    的任何值

  • 不,它不会打印指针<代码>月份和日期是整数变量。指向这些变量的指针被传递到
    date
    方法,该方法通过这些指针存储值。然后将打印这些值

  • 是-注释中缺少代码:

    /*
     * At this point, calculate the day and month
     * values in day_ret and month_ret respectively.
     */
    
    该代码将设置
    day\u ret
    month\u ret
    。如果没有丢失的代码,它实际上是不完整的,您可以获得
    的任何值

  • 不,它不会打印指针<代码>月份和日期是整数变量。指向这些变量的指针被传递到
    date
    方法,该方法通过这些指针存储值。然后将打印这些值


  • 简而言之,day_ret包含垃圾值,并且最终,
    day_p
    指向包含垃圾的位置。您应该遵循注释中给出的说明。在返回之前,您需要填写
    day_ret
    month_ret
    的值。否则,一切正常。简而言之,day_ret包含垃圾值,并且最终,
    day_p
    指向包含垃圾的位置。您应该遵循注释中给出的说明。在返回之前,您需要填写
    day_ret
    month_ret
    的值。否则,一切都好。