Выборка, которую Вы делаете, должна получить все удаленные ответвления, но она не создаст локальные ответвления для них. При использовании gitk необходимо видеть удаленные ответвления, описанные как "remotes/origin/dev" или что-то подобное.
Для создания локального ответвления на основе удаленного ответвления сделайте что-то как:
git checkout -b dev refs/remotes/origin/dev
, Который должен возвратить что-то как:
Branch dev set up to track remote branch refs/remotes/origin/dev. Switched to a new branch "dev"
Теперь, когда Вы будете на ответвлении dev, "получение по запросу мерзавца" обновит Ваш локальный dev к той же точке как удаленное ответвление dev. Обратите внимание, что это выберет все ответвления, но только вытягивать то, которое Вы идете к верхушке дерева.
На самом деле, когда массив «a» инициализируется, указатель на его первую ячейку памяти, т. Е. Возвращается [0], который является ничем иным, как a;
Так что если вы делаете «a + 1», то это фактически указатель на [1]
, если вы делаете «a + 2», это фактически указатель на [2]
если вы делаете 'a + 3', это на самом деле указатель на [3] и так далее,
, поэтому, если вы сделаете * (a + 1), вы получите значение [1 ] и аналогично для других значений. если вы сделаете * (а), то на самом деле получите [0], так что я думаю, теперь довольно ясно, как это работает ..
Я не знаю функциональных различий, но форма myPointer[1]
, в конечном счете, более читабельна и гораздо менее подвержена ошибкам кодирования.
DC
Форма *(myPointer + 1)
не позволяет изменять тип указателя на объект и, следовательно, получать доступ к перегруженному оператору [].
Кроме того, отладка намного сложнее
int *ints[10];
int myint = ints[10];
легче подобрать визуально, чем
int *ints;
int myint = *(ints + 10);
, также компилятор может вставить проверку диапазона, чтобы перехватить ошибку во время компиляции.
DC