Я наткнулся на следующую программу.Операторы и приоритет в c
#include<stdio.h>
int main()
{
char *s[] = { "knowledge","is","power"};
char **p;
p = s;
printf("%s ", ++*p);
printf("%s ", *p++);
printf("%s ", ++*p);
return 0;
}
Выход: nowledge nowledge s
Я уверен, что
1.First PRINTF печатает nowledge
Printf также 2. Во-вторых печатает nowledge
, поскольку она содержит пост инкремент так исходное значение первого Printf удерживается.
Теперь на этом этапе я смущен, что именно * p ++ делает. Теперь p будет указывать на is
или owledge
.
Запустите его и проверьте. – Haris
Я знаю выход .. но я хочу знать объяснение - @ralph – PsYcHeD
Почему вы не читаете документацию по приоритету оператора?Вы должны научиться тому, как это сделать, чтобы вы могли рассуждать о коде. –