на C++?
Я понимаю что pointer это просто ссылка на участок в памяти, но какая разница между reference и pointer, если const & по факту тот же самый pointer?
Силка це синтаксичиский сахар над указателем
А какие возможности он дает и разница между указателями?
https://ru.stackoverflow.com/questions/349/Чем-отличаются-ссылки-от-указателей-в-С
Получается нельзя изменить значение переменной с помощью указателя? Есть ли различия в скорости чтения указателя и ссылки? В чем разница: int sum(int a, int b) И int sum(int& a, int& b)
В тому що в другому випадку ти зможеш модифікувати зміні які передані в функцію #include <iostream> void add(int& a); void addNotRef(int b); int main() { int a = 2; int b = 2; add(a); std::cout << a; // 7 addNotRef(b); std::cout << b; // 2 } void add(int& a) { a += 5; } void addNotRef(int b) { b += 5; }
А если сделать так: void add(const int& a) То какая разница между ними?
#include <iostream> void add(const int& a); void addNotRef(int b); int main() { int a = 2; int b = 2; add(a); std::cout << a; // 7 addNotRef(b); std::cout << b; // 2 } void add(const int& a) { a += 5; } //ERROR: выражение должно быть допустимым для изменения левосторонним значением void addNotRef(int b) { b += 5; }
Но что тогда является более производительным? Const int& a или int b?
И можно ли изменять значение переменной через указатель?
Если int const * const ptr - то нельзя ни указатель, ни значение. Если int * const ptr - указатель нельзя, значение можно.
Обсуждают сегодня