2014-10-24 7 views
-1

Я проскальзывал через this, но в строке 114 написано printf("%d -> ", t->value); , что я прошу, что означает "%d ->? Это опечатка или что-то еще?Что означает «% d ->» в printf?

Пример:

struct btnode { 
    int value; 
    struct btnode * l; 
    struct btnode * r; 
} * root = NULL, * temp = NULL, * t2, * t1; 

void inorder(struct btnode * t) { 
    if (root == NULL) { 
     printf("No elements in a tree to display"); 
     return; 
    } 
    if (t->l != NULL) 
     inorder(t->l); 
    printf("%d -> ", t->value); 
    if (t->r != NULL) 
     inorder(t->r); 
} 
+0

Почему, по-вашему, это опечатка? Может быть, мы можем это прояснить. Обычно что-либо в строке, которой предшествуют «\» или «%», печатается как есть. – chromozonex

+0

@ChromoZoneX Я думаю, вы имеете в виду вещи, которым предшествуют «\» и «%» будет * Не * печататься как есть. – Grice

+0

^Мои извинения, вот что я имел в виду. – chromozonex

ответ

3

Это означает, что данный фрагмент кода будет выводить значение t->value в десятичной системе следуют символы ->. Ничего особенного, просто обычное printf

3

%d указывает на печать int, как описано ниже в методе (t->value). Часть -> - это просто печать ->.

5

Это ничего особенного, просто строка нормального формата.

printf("%d -> ", 42); 

выходы:

42 -> 
3

Это просто печатает число (% D), а затем с помощью ASCII стрелки ->. Ошибок нет.

3

Это не имеет особого значения

Поскольку вы используете бинарное понятие дерева, чтобы показать, что элементы Bind вместе со ссылкой на

Suppose you have a binary tree already constructed like this one: 
       15 
      /\ 
      10 30 
      /\ \ 
      5 13 35 

если вы обход дерева в IN -ORDER, тогда напечатанная ниже печать напечатала бы так:

printf("%d -> ", t->value); 

5 -> 10 -> 13 -> 15 -> 30 -> 35 
Смежные вопросы