Какие определения массивов из приведенных ниже синтаксически корректны с точки эрения отандарта языка C? int n=rand() & 10+1; int arr[n]; int arr[rand() & 100+1]={0}; unsigned long arr[100] = {0}; long long arr[0xffff] ={-1}; long long arr [-1]={0}; int
- Программирование
Условие:
Какие определения массивов из приведенных ниже синтаксически корректны с точки эрения отандарта языка C?
int n=rand() \& 10+1;
int arr[n];
int arr[rand() \& 100+1]=\{0\};
unsigned long arr[100] = \{0\};
long long arr[0xffff] =\{-1\};
long long arr [-1]=\{0\};
int n= rand () \& 10+1;
int arr[n * 2];
Решение:
Разберём последовательно каждое определение и проверим его на синтаксическую корректность согласно стандарту языка C (учитывая, что допускаются VLА в стандарте С99 и позднее): 1. Определение переменной: int n = rand() 10+1; Здесь происходит вычисление n как rand() (10+1) из-за правил приоритетов операторов. Это определение корректно, но оно не является определением массива. 2. Определение массива: int arr[n]; Здесь размер массива задаётся переменной n, которая уже была ранее определена. Такие массивы с переменной длиной (VLA) разрешены в стандарте C99 и выше. Это определение корректно....
Похожие задачи
Не нашел нужную задачу?
Воспользуйся поиском
Выбери предмет
- Правоохранительные органы
- Пожарная безопасность
- Парикмахерское искусство
- Природообустройство и водопользование
- Почвоведение
- Приборостроение и оптотехника
- Промышленный маркетинг и менеджмент
- Производственный маркетинг и менеджмент
- Процессы и аппараты
- Программирование
- Право и юриспруденция
- Психология
- Политология
- Педагогика
- Трудовое право
- Теория государства и права (ТГП)
- Таможенное право
- Теория игр
- Текстильная промышленность
- Теория вероятностей
- Теоретическая механика
- Теория управления
- Технология продовольственных продуктов и товаров
- Технологические машины и оборудование
- Теплоэнергетика и теплотехника
- Туризм
- Товароведение
- Таможенное дело
- Торговое дело
- Теория машин и механизмов
- Транспортные средства