1. Главная
  2. Библиотека
  3. Программирование
  4. Какие определения массивов из приведенных ниже синтакси...
Решение задачи

Какие определения массивов из приведенных ниже синтаксически корректны с точки эрения отандарта языка 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 и выше. Это определение корректно....

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет