Какова значимость возврата в этом условии if & while? - PullRequest
0 голосов
/ 25 марта 2020
/* Given a reference (pointer to pointer) to the head 
of a list and an int, appends a new node at the end */
void append(struct Node** head_ref, int new_data) 
{ 
    /* 1. allocate node */
    struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); 

    struct Node *last = *head_ref; /* used in step 5*/

    /* 2. put in the data */
    new_node->data = new_data; 

    /* 3. This new node is going to be the last node, so make next 
        of it as NULL*/
    new_node->next = NULL; 

    /* 4. If the Linked List is empty, then make the new node as head */
    if (*head_ref == NULL) 
    { 
    *head_ref = new_node; 
    return;
    } 

    /* 5. Else traverse till the last node */
    while (last->next != NULL) 
        last = last->next; 

    /* 6. Change the next of last node */
    last->next = new_node;
    return;
} 

Какое ключевое слово return используется в приведенном выше условии if & while?

Необходимо ли указывать это ключевое слово return или без него также будет работать моя программа штраф?

1 Ответ

0 голосов
/ 28 марта 2020

Ключевое слово return является необязательным для функций с типом возврата void (поскольку они ничего не возвращают). Однако, если используется оператор return, он немедленно останавливает выполнение программы функции и возвращается из функции. В вашем примере использование возврата в операторе if гарантирует, что функция больше не будет выполняться, если условие истинно.

Однако обратите внимание, что оператор return требуется, если тип возвращаемого значения функции не является void.

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