В практике программирования часты случаи,
int main()
{
// правильно: определение и инициализация
int ival = 0, jval = 0;
// ...
}
В практике программирования часты случаи, когда к объекту применяется некоторая операция, а результат этой операции присваивается тому же объекту. Например:
int arraySum( int ia[], int sz )
{
int sum = 0;
for ( int i = 0; i < sz; ++i )
sum = sum + ia[ i ];
return sum;
}
Для более компактной записи С и С++ предоставляют составные операции присваивания. С использованием такого оператора данный пример можно переписать следующим образом:
int arraySum( int ia[], int sz )
{
int sum = 0;
for ( int i =0; i < sz; ++i )
// эквивалентно: sum = sum + ia[ i ];
sum += ia[ i ];
return sum;
}
Общий синтаксис составного оператора присваивания таков:
a op= b;
где op= является одним из десяти операторов:
+= -= *= /= %=
<<= >>= &= ^= |=
Запись a op= b в точности эквивалентна записи a = a op b.
Упражнение 4.6
Найдите ошибку в данном примере. Исправьте запись.
int main() {
float fval;
int ival;
int *pi;
fval = ival = pi = 0;
}
Упражнение 4.7
Следующие выражения синтаксически правильны, однако скорее всего работают не так, как предполагал программист. Почему? Как их изменить?
(a) if ( ptr = retrieve_pointer() != 0 )
(b) if ( ival = 1024 )
(c) ival += ival + 1;
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий