Чем отличаются int* i от int *i, int& i от int &i ?
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 30.01.17 06:51
Оценка: :))) :))) :))) :))) :)
Чем отличаются выражения int* i от int *i, int& i от int &i ?
(Речь идёт об объявлении переменных и об объявлении параметров функции).
1613 г. = 2024 г.
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: solano  
Дата: 30.01.17 07:09
Оценка: +1
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?


Думаю, что вот тут Is ``int* p;'' right or is ``int *p;'' right? есть ответ на ваш вопрос.
С наилучшими пожеланиями.
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: SergeyOsipov Россия  
Дата: 30.01.17 07:09
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i ?


Первое — i — указатель на int
Второе — int — указатель на i

Вроде очевидно ж

Я шучу, если что. Ничем не отличаются, но если много переменных объявляешь в одной строке, то надо второе писать, просто чтоб не запутаться
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: Михaил  
Дата: 30.01.17 07:15
Оценка: +4 :))) :)))
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).

Вы забыли про редкий, но важный случай int * i;

(Ничем конечно же)
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 30.01.17 07:24
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).

Первое проблемнее тем, что можно случайно написать

int* a, b;


что будет неверной идеей, когда хочется, чтобы a и b были указателями на int.
Вариант вида (int*) a, b; поддерживался очень редкими компиляторами (сейчас — наверно, вообще никакими).
Можно сделать через typedef, но это дополнительная строка.

Если звёздочку ставить к переменной, то шансы на срабатывание такой ложной автоматики сильно меньше:

int *a, *b;


то же для &.

Больше — ничем.

P.S. По ссылке от solano@ написано то же самое, но удалять уже не буду.
The God is real, unless declared integer.
Отредактировано 30.01.2017 7:26 netch80 . Предыдущая версия .
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.01.17 08:30
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).

Ничем не отличаются.
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: kov_serg Россия  
Дата: 30.01.17 09:37
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).
Расположением пробела отличаются

Раньше можно было вообще так писать и никого это не удивляло
#include <stdio.h>

int main(int argc,char** argv) {
    int a=0;
    // /?? ^_^ ??/
    a--;
    a??!=010;
    printf("a=%d\n",a);
    return 0;
}

output
a=8
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: alpha21264 СССР  
Дата: 30.01.17 10:08
Оценка: +3
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).

Почитай книжку — "Керниган и Ричи Язык С".
Мне кажется, что неприлично такие вопросы в конфе задавать.

Течёт вода Кубань-реки куда велят большевики.
Re[2]: Чем отличаются int* i от int *i, int& i от int &i ?
От: Ops Россия  
Дата: 30.01.17 13:54
Оценка:
Здравствуйте, Михaил, Вы писали:

М>Вы забыли про редкий, но важный случай int * i;


int
*
i
;
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: Vain Россия google.ru
Дата: 30.01.17 16:03
Оценка: :)
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).
А не рано ли ты вопрос задал? Может всё-таки стоит дописать свои программы на MFC?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: TechL  
Дата: 30.01.17 18:56
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).

Читабельностью.
Попробуй сам найти ответ чем отличается
int *const a;

От
int const *a;
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: nikov США http://www.linkedin.com/in/nikov
Дата: 30.01.17 19:41
Оценка: +1
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).

Хотя это и малоизвестно, ещё есть формы
int*i

int * i

и
int
*
i
Re[2]: Чем отличаются int* i от int *i, int& i от int &i ?
От: Ops Россия  
Дата: 31.01.17 14:21
Оценка:
Здравствуйте, nikov, Вы писали:

N>Хотя это и малоизвестно, ещё есть формы

Про табы только не рассказывай
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Чем отличаются int* i от int *i, int& i от int &i ?
От: _niko_ Россия  
Дата: 01.02.17 21:02
Оценка: +2
Здравствуйте, netch80, Вы писали:

N> . . . . .


По мне тык *& лучше прижимать не к переменой, а к типу. Они все же являются его частью.

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

Объявление нескольких переменных одного типа через запятую предпочитаю считать ооочень частным случаем, а еще лучше вообще deprecated
Отредактировано 01.02.2017 21:05 _niko_ . Предыдущая версия .
Re[3]: Чем отличаются int* i от int *i, int& i от int &i ?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 02.02.17 11:50
Оценка: +1
Здравствуйте, _niko_, Вы писали:

__>По мне тык *& лучше прижимать не к переменой, а к типу. Они все же являются его частью.


Но когда что-то чуть более сложное приводит к описанию типа int (*func)(int), у тебя при всём желании не будет возможности "прижимать" символы к типу. Поэтому лучше вообще такого не предполагать.

__>Объявление нескольких переменных одного типа через запятую предпочитаю считать ооочень частным случаем, а еще лучше вообще deprecated


Даже согласен, но проблему это не исправит.
The God is real, unless declared integer.
Re: Чем отличаются int* i от int *i, int& i от int &i ?
От: alzt  
Дата: 08.02.17 05:31
Оценка: +1 :))) :)
Здравствуйте, RussianFellow, Вы писали:

RF>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>(Речь идёт об объявлении переменных и об объявлении параметров функции).

Зато я начинаю понимать как можно выучить английский за пол года
Автор: RussianFellow
Дата: 26.01.17
.
Re[2]: Чем отличаются int* i от int *i, int& i от int &i ?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.02.17 07:10
Оценка:
Здравствуйте, nikov, Вы писали:

RF>>Чем отличаются выражения int* i от int *i, int& i от int &i ?

RF>>(Речь идёт об объявлении переменных и об объявлении параметров функции).

N>Хотя это и малоизвестно, ещё есть формы

N>
int*i


А как насчёт таких форм?

int
    *
      i;


    int
  *
i;


Я вижу в них несомненный потенциал.
The God is real, unless declared integer.
Re[3]: Чем отличаются int* i от int *i, int& i от int &i ?
От: AlexRK  
Дата: 08.02.17 07:55
Оценка: +1 :))) :)
Здравствуйте, netch80, Вы писали:

N>Я вижу в них несомненный потенциал.


Самый большой потанцевал вот у такой формы:

  int
*     i;


Такая форма наиболее устойчива к программным сбоям, тип переменной прочно опирается на основу из указателя и названия.
Re[4]: Чем отличаются int* i от int *i, int& i от int &i ?
От: _niko_ Россия  
Дата: 08.02.17 20:21
Оценка:
Здравствуйте, netch80, Вы писали:

N>Но когда что-то чуть более сложное приводит к описанию типа int (*func)(int), у тебя при всём желании не будет возможности "прижимать" символы к типу.

  Тут вообще указатель прячется в тип
using func_t = int(*)(int);

func_t func = [](int x) { return 2*x; };
Отредактировано 08.02.2017 20:36 _niko_ . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.