мне интересно, в чем смысл следующего выражения:Указатель присваивается нескольким переменным
unsigned char *buff_p = txBuffer, hdrFlags, msgType;
мне интересно, в чем смысл следующего выражения:Указатель присваивается нескольким переменным
unsigned char *buff_p = txBuffer, hdrFlags, msgType;
Эта строка объявляет три переменные и присваивает один из них.
Это так же, как
int a = 1, b, c;
который является таким же, как
int b, c, a = 1;
Выражаясь иначе, =
имеет более высокий приоритет, чем ,
.
Линия выполняет только одно задание и объявляет две другие переменные.
unsigned char *buff_p = txBuffer, hdrFlags, msgType;
// buff_p points to txtBuffer
// other vars, they are of type char*
Это похоже на char one, two, three;
только с заданием на одной из объявленных переменных (я не использовал указатели для этого, так как там могут быть некоторые добавляют путаницы).
Вы не можете иметь unsigned char в C#. Также я считаю, что * находится в неправильном месте. если бы он был char *, они были бы указателями на символы, но с пробелом делает его недействительным C# –
@SimonHalsey кто-то изменил тег. Он был помечен как C/C++ минуту назад. – evanmcdonnal
@SimonHalsey 'char * buff_p;' компилирует просто отлично для меня. – Servy
Собственно, это только одно задание. Остальные два - это просто неинициализированные объявления переменных. –
@KyleTrauberman: Как он может использовать 'unsigned char' в C#? – Cemafor
не является * неправильным для C#? 'char * buff_p' будет в порядке,' char * buff_p' не подходит –