int &i; int& i; // присваиваются имена переменных. Например,
int var = 25;
int& i = var;
int* i; int *i; // присваиваются адреса переменных. Например,
int var = 36;
int* i = &var;
И в том и в другом случае нельзя присвоить числовую константу либо адрес на неё. Например,
int& i = 87; //ошибка
int* i = &96; // ошибка
Положение звёздочки при объявлении указателя и амперсанда при объявлении ссылки никак не влияют. Допускается следующие объявления:
int& a = var;
int & a = var;
int &a = var;
int* p = &var;
int * p = var;
int *p = &var;
Существенной особенностью ссылки от указателя является обязательность её инициализации в момент объявления.
int var = 25;
int val = 36;
int& a = var; // так можно
a = val; // и так теперь так можно
int& b; // а так нельзя
int* p; // так можно
p = &var; // так можно
C/C++
При присвоении i++; или ++i; разница есть а вот есть ли разница при присвоении int &i; int& i; int* i; int *i;
Нет, разницы между int &i; и int& i;, между int* i; и int *i; нет. Но надо понимать, что * и & относится всегда к имени переменной. Т.е. и int* i;, и int *i; означает:
int (*i);
И если ты напишешь:
int* i, j;
, то означать это будет:
int (*i), j;
А вот разница между int *i; и int &i; безусловно есть.
int (*i);
И если ты напишешь:
int* i, j;
, то означать это будет:
int (*i), j;
А вот разница между int *i; и int &i; безусловно есть.
В принципе похожая разница
Похожие вопросы
- Язык С++ : есть ли разница между этими двумя операциями? 1) int m = (int)n; 2) int m = int(n).
- Объсните пожалуйста значение скобок в int(*ptr)[10] и разницу с int(*ptr)[10]=new int[5][10]. (Подробности в описании)
- Программа на C++ с переводом Char в Int и наоборот при переводе возвращает НИЧЕГО
- Различие указателей int *; и char *;
- Strlen для int массивов.(Си)
- Что за числа выводятся при переполнении int в C++?
- Здраствуйте, я не понимаю что означает "int" и "main" можете обьяснить)
- Приведение доли к int в с++
- Определение числа в строке int или float
- Как записать int в массив посимвольно на c++?