- •Группа операторов с ошибкой:
- •Указать ошибку:
- •Указать ошибку: ???
- •Указать и объяснить ошибку:
- •Истинные высказывания:
- •Правильные определения указателей:
- •Правильная инициализация указателей:
- •Правильная инициализация указателей:
- •Операторы с ошибкой:
- •Присваивание указателей выполняется с ошибкой в операторах:
- •Присваивание указателей выполняется с ошибкой в операторах:
- •Инициализация указателя выполняется правильно в операторах:
- •Истинные высказывания:
- •Определить результат:
- •Определить результат:
- •Определить результат:
- •Результат сложения/вычитания указателя type * ptr с константой n определяют выражения:
- •Интерпретировать выражение:
- •Интерпретировать выражение:
- •??? Интерпретировать выражение:
- •??? Интерпретировать выражение:
- •??? Интерпретировать выражение:
- •НазвАть тип
- •Назвать тип
- •Назвать тип
- •Результат работы программы:
- •Результат работы операторов //6, //7 и //8 программы:
- •Указать операторы с ошибкой
- •Истинные высказывания:
- •Неявное (по умолчанию) приведение типа выполняется с ошибкой в операторах:
- •Указать ошибку и объяснить ее причины:
- •Указать ошибку и объяснить ее причины:
- •Указать ошибку и объяснить ее причины:
- •Указать ошибку и объяснить ее причины:
- •Верное использование указателя на константу
- •Неверное использование указателя-константы
- •Неверное использование указателя-константы на константу
- •Истинные высказывания:
- •Верные операторы:
- •Последовательность выполнения операторов
Результат сложения/вычитания указателя type * ptr с константой n определяют выражения:
1. ptr + N ptr + N * sizeof (type);
2. ptr - N ptr - N * sizeof (type);
3. ptr + N ptr + N * sizeof (ptr);
4. ptr - N ptr - N * sizeof (ptr);
5. ptr + N ptr + type * sizeof (N);
6. ptr - N ptr - type * sizeof (N);
результат вычитания указателей ptr1 – ptr2:
(int *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0 // 8
результат вычитания указателей ptr1 – ptr2:
(float *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0
// 8
результат вычитания указателей ptr1 – ptr2:
(double *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0
// 8
результат вычитания указателей ptr1 – ptr2:
(unsigned *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0
// 8
Интерпретировать выражение:
++p=(int *)3; где int *p;
1. левый операнд есть l-value выражение
2. невозможно конвертировать от 'int' к 'int *'
3. компиляция без ошибок
4. значение указателя увеличивается на 4 до выполнения присваивания
5. значение указателя увеличивается на 1 до выполнения присваивания
6. выполняется приведение типа от 'int' к 'int *'
7. значение указателя увеличивается на 4 после выполнения присваивания
8. значение указателя увеличивается на 1 после выполнения присваивания
9. ошибка компиляции
10. левый операнд должен быть l-value выражением
Интерпретировать выражение:
p++=(int *)3; где int *p;
1. левый операнд должен быть l-value выражением
2. невозможно конвертировать от 'int' к 'int *'
3. компиляция без ошибок
4. значение указателя увеличивается на 4 до выполнения присваивания
5. значение указателя увеличивается на 1 до выполнения присваивания
6. выполняется приведение типа от 'int' к 'int *'
7. значение указателя увеличивается на 4 после выполнения присваивания
8. значение указателя увеличивается на 1 после выполнения присваивания
9. ошибка компиляции
10. левый операнд есть l-value выражение
??? Интерпретировать выражение:
(*p)++=3; где int *p;
1. левый операнд должен быть l-value выражением
2. невозможно конвертировать от 'int' к 'int *'
3. компиляция без ошибок
4. значение указателя увеличивается на 4 до выполнения присваивания
5. значение указателя увеличивается на 1 до выполнения присваивания
6. выполняется приведение типа от 'int' к 'int *'
7. значение *р увеличивается на 4 после выполнения присваивания
8. значение *р увеличивается на 1 после выполнения присваивания
9. ошибка компиляции
10. левый операнд есть l-value выражение
??? Интерпретировать выражение:
++(*p)=3; где int *p;
1. левый операнд есть l-value выражение
2. невозможно конвертировать от 'int' к 'int *'
3. компиляция без ошибок
4. значение указателя увеличивается на 4 до выполнения присваивания
5. значение указателя увеличивается на 1 до выполнения присваивания
6. выполняется приведение типа от 'int' к 'int *'
7. значение *р увеличивается на 4 до выполнения присваивания
8. значение *р увеличивается на 1 до выполнения присваивания
9. ошибка компиляции
10. левый операнд должен быть l-value выражением