Тема: Порядок виконання операторів, Сі
Маю код із книги Стефана Кочана:
/****************************************************************************
* *
* File : main.c *
* *
* Purpose : Console mode (command line) program. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
#include <stdio.h>
/****************************************************************************
* *
* Function: main *
* *
* Purpose : Main entry point. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
int main(int argc, char *argv[])
{
struct entry{
int value;
struct entry *next;
};
struct entry n1, n2, n3;
struct entry *list_pointer = &n1;
n1.value = 100;
n1.next = &n2;
n2.value = 200;
n2.next = &n3;
n3.value = 300;
n3.next = (struct entry *) 0;
while(list_pointer != (struct entry *) 0){
printf("%i\n", list_pointer->value);
list_pointer = list_pointer->next;
}
return 0;
}
Мене цікавить, в якому порядку виконуються оператори тут:
struct entry *list_pointer = &n1;
Оператор розйменування має пріорітет 3, побітове І (&) 10, пряме присвоєння 16.