использовать значение указателя - PullRequest
0 голосов
/ 31 марта 2011

Я учу C и указатели. Я следую приведенному ниже коду и у меня есть пара вопросов.

  1. Моя MS Visual Studio жалуется: неинициализированная локальная переменная 'day_ret' используется. Затем я согласился, используя Geany (еще один IDE), и он работает. Что-то не так с этим кодом?

  2. Мне кажется, что автору, написавшему код, следует поставить некоторые значения для месяца и дня. В противном случае он просто распечатает адрес памяти, верно? Я хочу знать, должен ли я поставить начальное значение сразу после 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;
}

1 Ответ

3 голосов
/ 31 марта 2011
  1. Да - вам не хватает кода в комментариях:

    /*
     * At this point, calculate the day and month
     * values in day_ret and month_ret respectively.
     */
    

    Этот код будет устанавливать day_ret и month_ret.Без отсутствующего кода он фактически неполон, и вы можете получить любое значение для day и month.

  2. Нет, оно не будет распечатыватьсяуказатели.month и day являются целочисленными переменными.Указатели на эти переменные передаются методу date, который хранит значения через эти указатели.Затем значения печатаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...