синтаксис — Is & int; amp; температура & quot; такой же как & quot; int & amp; Температура & Quot; в С ++?

Я делаю задание для класса CS, и они хотят, чтобы я сделал прототип для этого:

void myFunction(double pressure, int &temperature, double &volume){
...
}

Но я понимаю, что это должно быть больше так:

void myFunction(double pressure, int& temperature, double& volume){
...
}

Может кто-нибудь сказать мне, если здесь есть что-то хитрое? Является int &temperature такой же как int& temperature когда дело доходит до компиляции?

1

Решение

Краткий ответ: да, они одинаковы. Если в скобках не указано иное, интервал означает одно и то же по обе стороны от & а также * модификаторы. После этого это опция стиля кода, которая в основном зависит от вас.

4

Другие решения

Они точно такие же. Пробелы между токенами (в основном) не имеют отношения к теме.

3

Когда используешь * а также &пробелы не имеют значения, поэтому:

int &temperature

эквивалентно:

int& temperature

а также для:

int & temperature

А какой из них вы будете использовать — это дело вкуса. Я лично предпочитаю второй, так как тип temperature является int&я считаю более разумным хранить его вместе с типом. Тем не менее, я уверен, что некоторые люди могут дать разумные аргументы, чтобы объяснить, почему они также предпочитают другого.

Однако пробелы важны для поддержания чистоты вашего кода & легко читать. Хотя вы всегда сталкиваетесь с такими неприятными вещами, как if (a --> 3) время от времени 🙂

3
По вопросам рекламы [email protected]