Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как работает это программка (C++)? (http://forum.oszone.net/showthread.php?t=58714)

Sherla 28-12-2005 20:22 387612

Как работает это программка (C++)?
 
раз
inline void swap(int& a, int& b)
{
a ^= b ^= a ^= b;
}
void main(void)
{
int i = 1, j = 2;
swap(i, j);
printf("i = %d, j = %d\n", i, j);
}

и что такое ^= ? какой ответ будет выводиться? можно ли какой нибудь пример с использованием встроенной функции самый простой без указателей? :)

два
int func(int i, int j = 1, int k = 2);
int func(int i, int j, int k)
{
return i + j + k;
}
void main(void)
{
int i, j, k;
i = func(1, 3);
printf("\n%d\n", i);
}
что будет выводиться? это пример программы с использованием аргументов по умолчанию. зачем второй раз писать int func(int i, int j, int k)? и что значит return i + j + k;?

PS у меня экзамен про программированию, специальность не программная :) так что по возможности объясните "для тупых" :) Спасибо!

SergeCpp 29-12-2005 12:16 387824

a ^= b равносильно a = a ^ b

Цитата:

inline void swap(int& a, int& b)
{
a ^= b ^= a ^= b;
}
Будет бяка из-за ссылок...

Откомпилируйте и в отладчике — там и поиграйтесь ссылками в параметрах

Получите знание...

pva 30-12-2005 10:27 388083

Код:

раз
a = 1, b = 2;
a = 1 xor 2 = 3;
b = 2 xor 3 = 1;
a = 3 xor 1 = 2;
на выходе: a = 2, b = 1;

два
int func(int i, int j = 1, int k = 2);
// описание функции, т.е.
// есть где-то такая функция, которая называется func, возвращает int,
// а если не указать последние два аргумента, используются 1 и 2 соответсвенно.

int func(int i, int j, int k)
{
  // определение функции, т.е. делает она вот что:
  return i + j + k;
}

func(1, 3);
// первые два аргумента заданы, последний - по умолчанию, т.е.
// func(1,3,2);



Время: 18:32.

Время: 18:32.
© OSzone.net 2001-