Различные способы печати текста с использованием подписки - PullRequest
0 голосов
/ 19 сентября 2019

Существуют ли существенные различия между следующими двумя способами печати текста с использованием подписок?Есть ли плюсы / минусы использования одного метода над другим?

#include <stdio.h>

int main(void)
{
    int i;
    char *text;

    /* method 1 */
    text = "abc";
    for (i = 0; i < 3; ++i) {
        printf("%c\n", text[i]);
    }

    printf("\n");

    /* method 2 */
    for (i = 0; i < 3; ++i) {
        printf("%c\n", "abc"[i]);
    }

    return 0;
}

1 Ответ

1 голос
/ 19 сентября 2019

Оба метода в основном одинаковы.Второй метод может быть немного быстрее, так как ваша функция печати вызывает статическое значение («abc») вместо ссылки на «abc».

Я не удивлюсь, если компилятор сделает эти 2 метода похожимив конце.

При этом первый метод должен быть лучше в большинстве ситуаций, поскольку вы, вероятно, захотите повторно использовать переменную 'text' или загрузить ее из другого места.

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