powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / int &i; что можно делат с такой переменной?
25 сообщений из 45, страница 1 из 2
int &i; что можно делат с такой переменной?
    #34673118
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
int &i; что можно делат с такой переменной? что она вообще из себя представляет? можно ли ей присвоить значение?
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673166
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то должен быть как минимум warning. Сделпть с таким уже нничего нельзя. инициализировать надо было при декларации
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673343
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не переменная :). Это ссылка на переменную. Почти, то же самое, что int *i, но имеющее вагон и маленькую тележку отличий в использовании.
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673401
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
действительно, поспешил, так не работает, пока получилось так:

int &i = *(int *)2;

printf("\ni = %u", &i);

можете сказать что за отличия от int * ?
но это конечно излишний изврать, а бывают ли для нее достойные применения?
это не тоже самое, при передачу параметра в функцию по ссылке? если тоже самое, то почему в теле функции я использую ее как обычную переменную, а так приходится добавлять &
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673452
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrik пишет:
> int &i;

Должно быть
int &i = xxx;

Инициализация ссылки обязательна.

что можно делат с такой переменной?
Все то же, что и с int xxx;

что она вообще из себя представляет?
Разименованный указатель на xxx.
Гарантированно указывающий на какое-то значение.

можно ли ей присвоить значение?

Да

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673455
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded пишет:

> Вообще-то должен быть как минимум warning. Сделпть с таким уже нничего

error.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673456
Фотография tAZAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrik а так приходится добавлять &
А зачем приходится? То, что вы написали:
int &i = *(int *)2;
ужос :-)
Вы берете адрес от i, и в него кладете
Взятие адреса нужно при передачи параметра по ссылке, или для взятия адреса :-) Масо масляное на первый взгляд.
Этим вы говорите, что значение переменной i находится начиная 0x2. Зачем?
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673472
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tAZAR Tubrik а так приходится добавлять &
А зачем приходится? То, что вы написали:
int &i = *(int *)2;
ужос :-)
Вы берете адрес от i, и в него кладете
Взятие адреса нужно при передачи параметра по ссылке, или для взятия адреса :-) Масо масляное на первый взгляд.
Этим вы говорите, что значение переменной i находится начиная 0x2. Зачем?

покажите как правильно
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673485
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrikдействительно, поспешил, так не работает, пока получилось так:

int &i = *(int *)2;

Мля-я-я Это сильно. Ну и какойже int у нас по адресу 2

printf("\ni = %u", &i);
Tubrik
можете сказать что за отличия от int * ?
но это конечно излишний изврать, а бывают ли для нее достойные применения?
это не тоже самое, при передачу параметра в функцию по ссылке? если тоже самое, то почему в теле функции я использую ее как обычную переменную, а так приходится добавлять &
1) не надо звездочку писать чтобы к int обратитсься
2) присвоить ссылке новое значение НЕЛЬЗЯ!!!
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673501
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrikдействительно, поспешил, так не работает, пока получилось так:

int &i = *(int *)2;

printf("\ni = %u", &i);

можете сказать что за отличия от int * ?
но это конечно излишний изврать, а бывают ли для нее достойные применения?
это не тоже самое, при передачу параметра в функцию по ссылке? если тоже самое, то почему в теле функции я использую ее как обычную переменную, а так приходится добавлять &

Гениальный код. И какой в этом смысл?

ссылка на объект предназначена для того чтобы, хранить адрес объекта, и при обращении к нему, обращаться к настоящему объекту. Т.е. по сути, обычный указатель. Но я нигде не встречал внятного описания, что такое ссылка. Потому, что описать, наверное, очень сложно.

Ссылка иммитирует обращение к обычному классу, т.е. вы не пишете -> для доступа к методу, а пишете ".". Так же не надо разыменовывать ее, для получения доступа к значению. Но ссылку всегда необходимо инициализировать, как отметил blinded, она не может принимать значения NULL. Хотя, компилятор и скажет вам Варнинг, но мы не сможем потом узнать, инициализированна она или нет. Ну, еще у нее куча особенностей, допустим передача значений по ссылке, параметры "Type const&", и т.д.

Почему в теле функции вы ее используете обычным образом, уже думаю, понятно. Ну, а в парметрах пишете & для того, чтобы компилятор не создовал копию передаваемого значения в стеке, а передал значение "по ссылке". Т.е. фактически, указатель, если не сможет оптимизировать.
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673552
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh

Гениальный код. И какой в этом смысл?



никакого, я просто пытался как-нибудь скомпилить и так получилось)

я так и не понял как присвоить какое-нидь значение, т.е. проинициализировать скажем числом 5
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673609
Фотография tAZAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
int i = 5; ???
Или вы хотите сослаться на определенный адрес в памяти?
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673635
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrik Akh

Гениальный код. И какой в этом смысл?



никакого, я просто пытался как-нибудь скомпилить и так получилось)

я так и не понял как присвоить какое-нидь значение, т.е. проинициализировать скажем числом 5

Код: plaintext
1.
2.
3.
4.
int const i5 =  5 ;

int &i=i5;

...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673642
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, и ссылка, есно, константная.
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673647
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никакой конкретной задачи, просто стало интересно узнать, можно ли переменной объявленной как int &i = ... присвоить значение, например целого числа, если да, то как это сделать? я где-то видел такое, но забыл. еще интересно, есть ли полезное использование таких объявлений, помимо изврата?
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673692
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrikникакой конкретной задачи, просто стало интересно узнать, можно ли переменной объявленной как int &i = ... присвоить значение, например целого числа, если да, то как это сделать? я где-то видел такое, но забыл. еще интересно, есть ли полезное использование таких объявлений, помимо изврата?

Скорее что-то перепутал.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
class A {
   private:
       int a[ 1000 ][ 200 ];
       double b[ 100000 ];
}:

void func(A &a)  {
};


Если в функции не использовать передачи по ссылке, то в стек будет забубенено много-много килобайт или мегобайт.

Код: plaintext
1.
2.
3.
func(int &i) {
   i= 5 ;
};

Если использовать ссылку, то по возвращению из функции ваши данные изменяться

Код: plaintext
1.
2.
3.
i= 3 ;
func(i);
//i == 5;
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673702
Фотография tAZAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrikпомимо изврата?
В красной книге, возможно, есть такие экземпляры :-)
Тут дело в том, что вы пытаетесь сказать, что &i = 2 - это адрес переменной i в памяти = 2.
Кто вам даст потом безнаказанно писать в память, которую вы не выделяли?
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673708
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh

Код: plaintext
1.
2.
3.
4.
int const i5 =  5 ;

int &i=i5;



i:\test2007\hui2\hui2.cpp(94): error C2440: 'initializing' : cannot convert from 'const int' to 'int &'
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673711
Фотография tAZAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или вот такой короткий пример использования &:

#include <QApplication>
#include <QFont>
#include "ui_hello.h"
using namespace Ui;

QDialog *widg;

int Run(QApplication *app);

int main(int argc, char* argv[])
{
QApplication app(argc, argv);
int res = Run(&app);
delete widg;
return res;
}

int Run(QApplication *app)
{
widg = new QDialog();
Dialog dlg;
dlg.setupUi(widg);

widg->showFullScreen();
return app->exec();
}


[SRC c++][/SRC]
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673715
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrik Akh

Код: plaintext
1.
2.
3.
4.
int const i5 =  5 ;

int &i=i5;



i:\test2007\hui2\hui2.cpp(94): error C2440: 'initializing' : cannot convert from 'const int' to 'int &'

Я же сразу исправился.

Код: plaintext
1.
2.
3.
int const i5 =  5 ;

int const &i=i5;
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673718
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tAZARИли вот такой короткий пример использования &:

#include <QApplication>
#include <QFont>
#include "ui_hello.h"
using namespace Ui;

QDialog *widg;

int Run(QApplication *app);

int main(int argc, char* argv[])
{
QApplication app(argc, argv);
int res = Run(&app);
delete widg;
return res;
}

int Run(QApplication *app)
{
widg = new QDialog();
Dialog dlg;
dlg.setupUi(widg);

widg->showFullScreen();
return app->exec();
}


[SRC c++][/SRC]

кажется это не совсем то, вы возможно хотели привести пример типа int Run(QApplication &app), а так получается взятие адреса..
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673725
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tAZARИли вот такой короткий пример использования &:

И где тут ссылки на объекты?
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673729
Фотография tAZAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrik
кажется это не совсем то, вы возможно хотели привести пример типа int Run(QApplication &app), а так получается взятие адреса..
Да, простите, ошибся :-)
Но для сведения тоже пойдет:-)
Вот то, о чем говорили:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
#include <QApplication>
#include "ui_hello.h"
using namespace Ui;

QDialog *widg;

int Run(QApplication &app);

int main(int argc, char* argv[])
{
	QApplication app(argc, argv);
	int res = Run(app);
	delete widg;
    return res;
}

int Run(QApplication &app)
{
    widg = new QDialog();
    Dialog dlg;
    dlg.setupUi(widg);

    widg->showFullScreen();
    return app.exec();
}


...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673731
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh Tubrik Akh

Код: plaintext
1.
2.
3.
4.
int const i5 =  5 ;

int &i=i5;



i:\test2007\hui2\hui2.cpp(94): error C2440: 'initializing' : cannot convert from 'const int' to 'int &'

Я же сразу исправился.

Код: plaintext
1.
2.
3.
int const i5 =  5 ;

int const &i=i5;


я пока печатал не видел нового поста
...
Рейтинг: 0 / 0
int &i; что можно делат с такой переменной?
    #34673737
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разницы же нету
const int i5 = 5;
или
int const i5 = 5;

??
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / int &i; что можно делат с такой переменной?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]