Никакой разницы.
Официальный синтаксис: return something;
или return;
и, конечно, это ключевое слово, а не функция.
По этой причине вы должны читать не как return( a );
, а как return (a);
Я думаю, что разница невелика, но очевидна, скобки будут применяться не к возврату, а к.
((((a))))
совпадает с (a)
, что совпадает с a
.
Вы также можете написать что-то вроде ...
int x = (((100)));
Вы также можете написать что-то вроде ...
printf("%d\n", (z));
Как кто-то сказал в комментариях, теперь с C ++ 11 (версия языка C ++ 2011) новый оператор decltype
. Этот оператор представляет новый пример, где (a)
отличается от a
, это довольно эзотерично и немного не в тему, но я добавляю этот пример только для полноты картины.
int x = 10;
decltype(x) y = x; // this means int y = x;
decltype((x)) z = x; // this means int& z = x;
y = 20;
z = 30;
std::cout << x << " " << y << " " << z << std::endl;
// this will print out "30 20 30"
Студенты не будут заинтересованы в этом, как я уже сказал, слишком эзотерически, и он будет работать только с компиляторами, которые поддерживают хотя бы часть стандарта C ++ 11 (например, GCC 4.5+ и Visual Studio 2010).
Это контрастирует также с использованием ключевого слова typeid
:
int a;
std::cout << typeid(a).name() << std::endl; // will print "int"
std::cout << typeid((a)).name() << std::endl; // will print "int" !!!!